Während Elixir uns ermutigt, keine Try/Catch-Blöcke zu verwenden, gibt es Zeiten, in denen sie benötigt werden. In einer Anwendung, die ich geschrieben habe, habe ich den folgenden try/catch, der funktioniert.Elixier: Versuch, die Ausgangssignale zu fangen
try do
message = GenServer.call(via, :get_messages)
{:ok, message}
catch
:exit, _ -> {:error, "Process uuid no longer exists"}
end
Im Rastabschnitt änderte ich :exit, -
zu {:exit, _}
denken, dass sie die gleiche Sache waren und führte den Code zu brechen.
Meine Frage ist, was :exit, _
ist
Es ist kein Tupel, Liste sein muss Naht etc. Auch wenn ich _
verwendet es nicht übereinstimmten. Ist ein Makro gefangen, das Parameter erwartet?
Relevant: Meine Antwort auf die 3 Arten von Ausnahmen in Erlang: https://Stackoverflow.com/a/45973542/320615 – Dogbert