我想捕捉零除法错误,但不知道我应该为此写哪个确切的模式
Result = try 5/0 catch {'EXIT',{badarith,_}} -> 0.
当我通过捕获所有异常时它起作用
Result = try 5/0 catch _:_ -> 0.
但第一个例子给出
** 异常错误:计算算术表达式时发生错误
那么如何正确捕捉零除法
您可以使用我从http://learnyousomeerlang.com/errors-and-exceptions获得的代码
catcher(X,Y) ->
case catch X/Y of
{'EXIT', {badarith,_}} -> "uh oh";
N -> N
end.
6> c(exceptions).
{ok,exceptions}
7> exceptions:catcher(3,3).
1.0
8> exceptions:catcher(6,3).
2.0
9> exceptions:catcher(6,0).
"uh oh"
或者
catcher(X, Y) ->
try
X/Y
catch
error:badarith -> 0
end.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句