나는 erlang에 꽤 익숙하다. 그리고 나는 try/catch 문을 작동 시키려고 노력 중이다. 나는 일부 요청을 처리하기 위해 웹마 스터를 사용하고 있으며, 일부 JSON 데이터를 구문 분석하여 리턴하고 싶다. JSON 데이터가 유효하지 않은 경우, 오류 메시지를 리턴하고 싶다. 지금까지. try/catch가 erlang에서 작동하도록하는 방법
이 코드는 컴파일to_text(ReqData, Context) ->
Body = "{\"firstName\": \"John\"\"lastName\": \"Smith\"}",
try decode(Body) of
_ -> {"Success! Json decoded!",ReqData,Context}
catch
_ -> {"Error! Json is invalid",ReqData,Context}
end.
decode(Body) ->
{struct, MJ} = mochijson:decode(Body).
(JSON 데이터가 유효하지 않습니다),하지만 난 그것을 실행하고 텍스트에 대한 요청을 보낼 때, 나는 다시 오류를 다음 얻을.
error,{error,{case_clause,{{const,"lastName"},
": \"Smith\"}",
{decoder,utf8,null,1,31,comma}}},
[{mochijson,decode_object,3},
{mochijson,json_decode,2},
{webmachine_demo_resource,test,1},
{webmachine_demo_resource,to_text,2},
{webmachine_demo_resource,to_html,2},
{webmachine_resource,resource_call,3},
{webmachine_resource,do,3},
{webmachine_decision_core,resource_call,1}]}}
정확히 내가 뭘 잘못하고 있는거야? 설명서에 따르면 "catch"문은 모든 오류를 처리하고, 또는 mochijson : decode에 의해 던져지는 특정 오류를 잡으려면 뭔가해야합니다. 리드 또는 조언을 제공해 주시면 도움이 될 것입니다. 감사.
감사합니다. RichardC 님, 제가 찾고있는 것이 맞습니다. – user436605
예, 충돌하게하십시오! –
@RichardC try catch를 사용하는 동시에 스택 추적을 인쇄하는 방법? – coffeMug