我按照文档但不明白尝试捕获,有人可以用一个简单的例子解释一下吗?
答案 0 :(得分:5)
我想你会喜欢LYSE的article on exceptions.
答案 1 :(得分:1)
try catch 背后的想法是尝试一个表达式并在出现任何问题时捕获它。您首先尝试表达式,如果一切顺利,您将获得正常的结果。但是,如果您遇到错误,您可以捕获并处理它。
例如,获取空列表的头部会导致“错误参数”异常。例如,您可以捕获它并返回错误类型,或者捕获所有模式并返回您喜欢的任何内容。在 Erlang shell 中尝试一下!
1> try hd(["foo","bar"]) catch error:Error -> {error,Error} end.
"foo"
2> try hd([]) catch error:Error -> {error,Error} end.
{error,badarg}
3> try hd([]) catch _:_ -> "Can't take the head of an empty list" end.
"Can't take the head of an empty list"
答案 2 :(得分:0)
如果您想在 Erlang shell 中使用单行示例:
1> try exit(timeout) of _ -> not_caught catch exit:timeout -> ok end.
ok