1> foo:inter().**异常错误:函数foo中的错误参数:inter/0(foo.erl,第7行)
-module(foo).
-compile(export_all).
inter() ->
A = <<"5a">>,
B = binary_to_list(A),
try list_to_integer(B) of
Result -> Result
catch
_ -> {error, bad_integer}
end.
Run Code Online (Sandbox Code Playgroud)
我希望得到{error,bad_integer}.
有3种类型的异常二郎:error,exit和throw.catch条款具有格式Type:Pattern.如果Type未指定a,就像在代码中一样,只会throw在list_to_integer抛出异常时捕获异常error.您可以捕获所有error使用error:_或捕获任何异常使用_:_.
1> try list_to_integer("5a") of
1> Result -> Result
1> catch
1> _:_ -> {error, bad_integer}
1> end.
{error,bad_integer}
Run Code Online (Sandbox Code Playgroud)