用try catch 来catch住报错,并写日志
//获取第三方接口 get_token() -> try TokenUrl = '127.0.0.1:8080/token', case httpc:request(post, {TokenUrl, [], "application/x-www-form-urlencoded", []}, [{timeout, 5000}], []) of {error, _} -> none; {ok, {{_, 200, _}, _, BackResult}} -> BackResult1 = unicode:characters_to_binary(BackResult, utf8, utf8), Result = jsx:decode(BackResult1), Token = scada_util:bin_to_list(<<"access_token">>, Result), TokenType = scada_util:bin_to_list(<<"token_type">>, Result), {"authorization", TokenType ++ " " ++ Token} end catch E1:E2 -> lager:error("get_token error:~p~n", [{E1, E2, erlang:get_stacktrace()}]), none end. //测试 test() -> try case get_token() of none -> throw("not_found_token"); Token -> Token end catch // E2 就是throw传的参数 throw:E2 -> //写日志 insert_log(E2), false; E2:E3 -> lager:error("get_token error:~p~n", [{E2, E3, erlang:get_stacktrace()}]), false end.