3

我对 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或任何值的这种情况,它应该适用于这两种情况。

4

1 回答 1

5

调用前检查是否wh_json:get_ne_value返回:undefinedbinary:bin_to_list

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
于 2014-08-08T09:23:04.883 回答