From ac518dfe4a8043b72be8251e6bf108057a819d5f Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Sun, 30 May 2010 16:05:32 -0700 Subject: [PATCH] decoder now catches function clause errors and converts them to {error, badjson} tuples --- src/jsx.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jsx.erl b/src/jsx.erl index 853d326..62b649d 100644 --- a/src/jsx.erl +++ b/src/jsx.erl @@ -101,7 +101,7 @@ decoder({{Mod, Fun}, State}, OptsList) when is_list(OptsList), is_atom(Mod), is_ Opts = parse_opts(OptsList), decoder({fun(E, S) -> Mod:Fun(E, S) end, State}, Opts); decoder(Callbacks, Opts) -> - fun(Stream) -> start(Stream, [], Callbacks, Opts) end. + fun(Stream) -> try start(Stream, [], Callbacks, Opts) catch error:function_clause -> {error, badjson} end end. parse_opts(Opts) ->