Elixir 长生不老药:尝试捕捉出口信号
虽然Elixir鼓励我们不要使用try/catch块,但有时需要它们。在我编写的一个应用程序中,我使用了以下try/catch方法Elixir 长生不老药:尝试捕捉出口信号,elixir,phoenix-framework,Elixir,Phoenix Framework,虽然Elixir鼓励我们不要使用try/catch块,但有时需要它们。在我编写的一个应用程序中,我使用了以下try/catch方法 try do message = GenServer.call(via, :get_messages) {:ok, message} catch :exit, _ -> {:error, "Process uuid no longer exists"} end 在catch部分,我将:exit,-改为{:exit,{u}认为它们是同一个东西,
try do
message = GenServer.call(via, :get_messages)
{:ok, message}
catch
:exit, _ -> {:error, "Process uuid no longer exists"}
end
在catch部分,我将:exit,-
改为{:exit,{u}
认为它们是同一个东西,这导致了代码被破坏
我的问题是什么是:退出,
它不可能是元组、列表等。即使我使用了
\uuu
它也不匹配。catch是一个需要参数的宏吗 Elixir是开源的,它有一个近乎完美的文档
这一小节揭示了整个事情
是的,
try
是由编译器内联的,取决于子句的签名。Elixir是开源的,它有一个近乎完美的文档
这一小节揭示了整个事情
是的,
try
由编译器内联,取决于子句的签名。相关:我对Erlang中3种类型异常的回答:相关:我对Erlang中3种类型异常的回答:谢谢链接。我想我的问题的一部分,令人惊讶的是,我希望catch部分中有模式匹配,因此有一个像tuple这样的长生不老药类型,但因为它是一个宏,所以实际上需要两个参数。我同意文档是好的,但是对于noop来说,更详细的细节仍然是不明显的。再次感谢您的回复。感谢您的链接。我想我的问题的一部分,令人惊讶的是,我希望catch部分中有模式匹配,因此有一个像tuple这样的长生不老药类型,但因为它是一个宏,所以实际上需要两个参数。我同意文档是好的,但是对于noop来说,更详细的细节仍然是不明显的。再次感谢您的回复。