【问题标题】:Handle badarg in Erlang在 Erlang 中处理 badarg
【发布时间】:2014-10-01 17:23:39
【问题描述】:

我对 Erlang 非常陌生,当我尝试将二进制转换为字符串时遇到 badarg 错误,如下所示。

Prefix = binary:bin_to_list(wh_json:get_ne_value(<<"prefix">>, Patterns)),

Patterns 在哪里:

Pattern1--> {[{<<"prefix">>,<<>>},{<<"callerId">>,<<"1001">>},{<<"cid_regex">>,<<"^\\+?1001">>}]}

Pattern2--> {[{<<"prefix">>,<<"12">>},{<<"callerId">>,<<"1001">>},{<<"cid_regex">>,<<"^\\+?1001">>}]}

对于Pattern2,它工作正常,但对于Pattern1,我收到此错误,因为前缀在Pattern1 中没有任何值。

那么,谁能告诉我如何处理前缀值可以是null 或任何值的情况,它应该适用于这两种情况。

【问题讨论】:

    标签: json list binary erlang kazoo


    【解决方案1】:

    在调用binary:bin_to_list之前检查wh_json:get_ne_value是否返回undefined

    Prefix =
        case wh_json:get_ne_value(<<"prefix">>, Patterns) of
            undefined ->
                prefix_not_found;
            BinaryPrefix when is_binary(BinaryPrefix) ->
                binary:bin_to_list(BinaryPrefix)
        end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 2011-05-30
      • 1970-01-01
      • 2011-01-28
      • 2010-10-21
      相关资源
      最近更新 更多