2017-12-26 26 views
-2

は機能string:find/2を使用しようとしているが、私はターミナルで使用する場合、すべての時間がエラーアーランが理由で終了しました - undefを:

CRASH REPORT Process <0.779.0> with 0 neighbours exited with reason: {{undef,[{string,find,[[<<208,162,51,32,208,190,208,177,209,137,46,44,32,84,51,32,116,111,116,97,108,44>>],[<<208,186,209,128,208,190,208,178>>]],[]},{proxy_layer_cli_handle_req,do_execute_keysearch,4,[{file,\"/opt/proxy_layer/_build/test/lib/proxy_layer/src/proxy_layer_cli_handle_req.erl\"},{line,222}]},{proxy_layer_cli_handle_req,keysearch,3,[{file,\"/opt/proxy_layer/_build/test/lib/proxy_layer/src/proxy_layer_cli_handle_req.erl\"},{line,...}]},...]},...} 

を取得(文字列で/ 2 FUNCを見つける。) - すべてが大丈夫です

1> string:find(<<208,162,51,32,208,190,208,177,209,137,46,44,32,84,51,32,116,111,116,97,108,44>>,<<208,186,209,128,208,190,208,178>>).  
1> nomatch 

do_execute_keysearch([First|Rest], PriceList, Keyword, Acc) -> 
    Id = utils:get_value(<<"Id">>, First), 
    case utils:get_value(<<"Keywords">>, First) of 
    <<>> -> do_execute_keysearch(Rest, PriceList, Keyword, Acc); 
    undefined -> do_execute_keysearch(Rest, PriceList, Keyword, Acc); 
    Keys -> 
     case string:find(Keys, Keyword) of 
     nomatch -> 
      do_execute_keysearch(Rest, PriceList, Keyword, Acc); 
     _ -> 
      Price = find_price_by_service_id(PriceList, Id), 
      NewAcc = [lists:append(Price, First) | Acc], 
      do_execute_keysearch(Rest, PriceList, Keyword, NewAcc) 
     end 
    end; 
:私はアーラン20.1ここ

を使用してい

は、私が使用するコードです

更新日: ドッカーコンテナでErlangバージョンを変更した後に修正されました。だから、問題はより慎重にエラーで

+0

エラーを再現するための完全な例を提供してください。 –

答えて

-2

ルック今は解決

アーラン19で未定義のいくつかのモジュールがある理由を知ってはいけない (アーラン20.1に変更)。あるいは、それを再現しようとします。どちらがあなたのエラーにもっと似ていますか?あなたは解決策がアーラン19にundefエラーを取得した理由である

1> catch lists:nonexist(<<1>>, <<2>>). 
{'EXIT',{undef,[{lists,nonexist,[<<1>>,<<2>>],[]}, 
       {erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,674}]}, 
       {erl_eval,expr,5,[{file,"erl_eval.erl"},{line,431}]}, 
       {shell,exprs,7,[{file,"shell.erl"},{line,687}]}, 
       {shell,eval_exprs,7,[{file,"shell.erl"},{line,642}]}, 
       {shell,eval_loop,3,[{file,"shell.erl"},{line,627}]}]}} 
2> catch lists:nonexist([<<1>>], [<<2>>]). 
{'EXIT',{undef,[{lists,nonexist,[[<<1>>],[<<2>>]],[]}, 
       {erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,674}]}, 
       {erl_eval,expr,5,[{file,"erl_eval.erl"},{line,431}]}, 
       {shell,exprs,7,[{file,"shell.erl"},{line,687}]}, 
       {shell,eval_exprs,7,[{file,"shell.erl"},{line,642}]}, 
       {shell,eval_loop,3,[{file,"shell.erl"},{line,627}]}]}} 
+0

答えをありがとう。問題が見つかりました!私はドッカーを使用しており、erlang 19vsnがあります。なぜErlangモジュールがないのか分かりません。バージョンを20.1に変更し、エラーはなくなりました。 – Qbeck

関連する問題