erlang -----gen_serve过程中出现报错,一直重启循环报错解决

用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.
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值