Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 长生不老药:尝试捕捉出口信号_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 长生不老药:尝试捕捉出口信号

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}认为它们是同一个东西,

虽然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}
认为它们是同一个东西,这导致了代码被破坏

我的问题是什么是
:退出,


它不可能是元组、列表等。即使我使用了
\uuu
它也不匹配。catch是一个需要参数的宏吗

Elixir是开源的,它有一个近乎完美的文档

这一小节揭示了整个事情


是的,
try
是由编译器内联的,取决于子句的签名。

Elixir是开源的,它有一个近乎完美的文档

这一小节揭示了整个事情


是的,
try
由编译器内联,取决于子句的签名。

相关:我对Erlang中3种类型异常的回答:相关:我对Erlang中3种类型异常的回答:谢谢链接。我想我的问题的一部分,令人惊讶的是,我希望catch部分中有模式匹配,因此有一个像tuple这样的长生不老药类型,但因为它是一个宏,所以实际上需要两个参数。我同意文档是好的,但是对于noop来说,更详细的细节仍然是不明显的。再次感谢您的回复。感谢您的链接。我想我的问题的一部分,令人惊讶的是,我希望catch部分中有模式匹配,因此有一个像tuple这样的长生不老药类型,但因为它是一个宏,所以实际上需要两个参数。我同意文档是好的,但是对于noop来说,更详细的细节仍然是不明显的。再次感谢您的回复。