switched to error/2 from error/1 in exported funcs

Passing a list of arguments in the second parameter, makes them
show up in the stack trace in place of the function arity number.

For referentially transparent functions (which foo_to_bar tend to
be) failures can then be reproduced from just the stack trace!

If using error/1, you must rely on some higher layer to add enough
info to reproduce the crash.
This commit is contained in:
amtal 2011-06-23 14:41:51 -07:00
parent e4cbe15fa7
commit b9d10181ab

View file

@ -76,7 +76,7 @@ decoder(OptsList) ->
json_to_term(JSON) ->
try json_to_term(JSON, [])
%% rethrow exception so internals aren't confusingly exposed to users
catch error:badarg -> erlang:error(badarg)
catch error:badarg -> erlang:error(badarg,[JSON])
end.
@ -91,7 +91,7 @@ json_to_term(JSON, Opts) ->
term_to_json(JSON) ->
try term_to_json(JSON, [])
%% rethrow exception so internals aren't confusingly exposed to users
catch error:badarg -> erlang:error(badarg)
catch error:badarg -> erlang:error(badarg,[JSON])
end.
@ -100,7 +100,7 @@ term_to_json(JSON) ->
term_to_json(JSON, Opts) ->
try jsx_eep0018:term_to_json(JSON, Opts)
%% rethrow exception so internals aren't confusingly exposed to users
catch error:badarg -> erlang:error(badarg)
catch error:badarg -> erlang:error(badarg,[JSON,Opts])
end.
@ -275,4 +275,4 @@ multi_test_result() ->
-endif.
-endif.