【发布时间】:2017-03-09 22:02:12
【问题描述】:
背景
try/rescue 和 try/catch 都是 Elixir 中的错误处理技术。根据介绍指南中的corresponding chapter。
可以使用
try/rescue构造来挽救错误
另一方面,
throw和catch保留用于无法检索值的情况,除非使用throw和catch。
怀疑
我有一个简单的了解,rescue 是用于错误的。而catch 则适用于任何值。
然而,
- 什么时候应该使用 Elixir 中的错误处理机制?
- 它们之间的详细区别是什么?
- 我应该如何选择一个用于特定用例?
- 究竟是什么情况,除非使用
throw和catch',否则无法检索值??
【问题讨论】:
-
你根本不应该使用它们;)这不是你想要
try/catch所有错误的Java。您应该在发生错误时使用监督者以使您的应用更加健壮,或者在发生错误时使用 raise。 -
除了公认的答案之外,the answer by Dimagog 的表格很棒。
标签: elixir