1> FOO:帧间()。 **异常错误:错误的参数 在函数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.
我希望得到{error,bad_integer}。
答案 0 :(得分:5)
Erlang中有3 types of exceptions:error
,exit
和throw
。 catch
子句的格式为Type:Pattern
。如果未在代码中指定Type
,则在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}