我有一些要在任务中运行的代码,但可能会引发错误。我尝试用try / rescue包装,但是没有发现错误。
try do
Supervisor.start_link([ {Task, fn -> raise "kaboom" end}], strategy: :one_for_one)
rescue
RuntimeError -> "Error!"
end
我希望出现“错误!”要打印但是我得到-
(RuntimeError) kaboom
(stdlib) erl_eval.erl:678: :erl_eval.do_apply/6
(elixir) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
(stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3
Function: #Function<20.128620087/0 in :erl_eval.expr/5>
Args: []
{:ok, #PID<0.332.0>}
有什么方法可以处理任务的发起者引发的异常?
谢谢
答案 0 :(得分:3)