From ba6f5a351cd734c9ad60de4eebcce480dda55bca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Meadows-J=C3=B6nsson?= Date: Sat, 4 Jun 2016 21:59:03 +0200 Subject: [PATCH] Raise errors instead of throwing --- .rebar/erlcinfo | Bin 0 -> 497 bytes src/jiffy.erl | 20 ++++++++++---------- test/jiffy_01_yajl_tests.erl | 4 ++-- test/jiffy_03_number_tests.erl | 2 +- test/jiffy_04_string_tests.erl | 8 ++++---- test/jiffy_05_array_tests.erl | 2 +- test/jiffy_06_object_tests.erl | 2 +- test/jiffy_07_compound_tests.erl | 2 +- test/jiffy_12_error_tests.erl | 2 +- 9 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 .rebar/erlcinfo diff --git a/.rebar/erlcinfo b/.rebar/erlcinfo new file mode 100644 index 0000000000000000000000000000000000000000..5464f688a486d8a4a1c20a210d3a51e79b9a8c6d GIT binary patch literal 497 zcmVjowW$}c z#x)gzp7ZfNs!lzAGbG)bRFk$o+w#7KIw0bt-8x1i`N}kDp&D@neL-D z7O2Eb%!?>Gzh`IcrI@p~Y{kxd;SZJ@n>4bn_ptm1rQYteYb)rNP0Xp}8U$1Iokj}z z#$fpXI$N(t-@WoxR=^P1o*?n--}A{`D{Ys~EKc*MjQ(95P3Sw%aGJsn^^POK@q0he z43xASnIeF`;4+8SZ3~j%rO&0XXAMQo-;Xo{j;JYOUwmu@$gRT`EHbG`W}-XJ29oMrgE9X;&!z++DZ^V^Ox7=W<^`7Y#2hfxGZHXQdjgNk6pZ z_b&Szkj6L;+4T{rrteT6NsVI2)6{5yU!BnGh#{OD4HEr$6CUB z;Z2wh46=R4&eK3Pj-1Z4ES?q&68GqI@gLgO;j9wK1aa~Sx#0 literal 0 HcmV?d00001 diff --git a/src/jiffy.erl b/src/jiffy.erl index 9871e4f..6ed825a 100644 --- a/src/jiffy.erl +++ b/src/jiffy.erl @@ -64,8 +64,8 @@ decode(Data) -> -spec decode(iolist() | binary(), decode_options()) -> jiffy_decode_result(). decode(Data, Opts) when is_binary(Data), is_list(Opts) -> case nif_decode_init(Data, Opts) of - {error, _} = Error -> - throw(Error); + {error, Error} -> + error(Error); {partial, EJson} -> finish_decode(EJson); {iter, Decoder, Val, Objs, Curr} -> @@ -92,8 +92,8 @@ encode(Data, Options) -> {error, {invalid_object_member_key, _}} when ForceUTF8 == true -> FixedData = jiffy_utf8:fix(Data), encode(FixedData, Options -- [force_utf8]); - {error, _} = Error -> - throw(Error); + {error, Error} -> + error(Error); {partial, IOData} -> finish_encode(IOData, []); {iter, Encoder, Stack, IOBuf} -> @@ -158,9 +158,9 @@ finish_encode([Val | Rest], Acc) when is_integer(Val) -> Bin = list_to_binary(integer_to_list(Val)), finish_encode(Rest, [Bin | Acc]); finish_encode([InvalidEjson | _], _) -> - throw({error, {invalid_ejson, InvalidEjson}}); + error({invalid_ejson, InvalidEjson}); finish_encode(_, _) -> - throw({error, invalid_ejson}). + error(invalid_ejson). init() -> @@ -177,8 +177,8 @@ init() -> decode_loop(Data, Decoder, Val, Objs, Curr) -> case nif_decode_iter(Data, Decoder, Val, Objs, Curr) of - {error, _} = Error -> - throw(Error); + {error, Error} -> + error(Error); {partial, EJson} -> finish_decode(EJson); {iter, NewDecoder, NewVal, NewObjs, NewCurr} -> @@ -197,8 +197,8 @@ encode_loop(Data, Options, Encoder, Stack, IOBuf) -> {error, {invalid_object_member_key, _}} when ForceUTF8 == true -> FixedData = jiffy_utf8:fix(Data), encode(FixedData, Options -- [force_utf8]); - {error, _} = Error -> - throw(Error); + {error, Error} -> + error(Error); {partial, IOData} -> finish_encode(IOData, []); {iter, NewEncoder, NewStack, NewIOBuf} -> diff --git a/test/jiffy_01_yajl_tests.erl b/test/jiffy_01_yajl_tests.erl index aedaf71..046c4aa 100644 --- a/test/jiffy_01_yajl_tests.erl +++ b/test/jiffy_01_yajl_tests.erl @@ -12,8 +12,8 @@ yajl_test_() -> [gen(Case) || Case <- Cases]. -gen({Name, Json, {error, _}=Erl}) -> - {Name, ?_assertThrow(Erl, jiffy:decode(Json))}; +gen({Name, Json, {error, Erl}}) -> + {Name, ?_assertError(Erl, jiffy:decode(Json))}; gen({Name, Json, Erl}) -> {Name, ?_assertEqual(Erl, jiffy:decode(Json))}. diff --git a/test/jiffy_03_number_tests.erl b/test/jiffy_03_number_tests.erl index ac7b95f..0d2b430 100644 --- a/test/jiffy_03_number_tests.erl +++ b/test/jiffy_03_number_tests.erl @@ -30,7 +30,7 @@ gen(ok, {J1, E, J2}) -> gen(error, J) -> {msg("Error: ~s", [J]), [ - ?_assertThrow({error, _}, dec(J)) + ?_assertError(_, dec(J)) ]}; gen(floats, F) -> diff --git a/test/jiffy_04_string_tests.erl b/test/jiffy_04_string_tests.erl index 7cf645d..b701487 100644 --- a/test/jiffy_04_string_tests.erl +++ b/test/jiffy_04_string_tests.erl @@ -52,21 +52,21 @@ gen(uescaped, {J, E}) -> gen(error, J) -> {msg("error - ~s", [J]), [ - ?_assertThrow({error, _}, dec(J)) + ?_assertError(_, dec(J)) ]}; gen(utf8, {Case, Fixed}) -> Case2 = <<34, Case/binary, 34>>, Fixed2 = <<34, Fixed/binary, 34>>, {msg("UTF-8: ~s", [hex(Case)]), [ - ?_assertThrow({error, {invalid_string, _}}, jiffy:encode(Case)), + ?_assertError({invalid_string, _}, jiffy:encode(Case)), ?_assertEqual(Fixed2, jiffy:encode(Case, [force_utf8])), - ?_assertThrow({error, {_, invalid_string}}, jiffy:decode(Case2)) + ?_assertError({_, invalid_string}, jiffy:decode(Case2)) ]}; gen(bad_utf8_key, {J, E}) -> {msg("Bad UTF-8 key: - ~p", [size(term_to_binary(J))]), [ - ?_assertThrow({error, {invalid_object_member_key, _}}, jiffy:encode(J)), + ?_assertError({invalid_object_member_key, _}, jiffy:encode(J)), ?_assertEqual(E, jiffy:decode(jiffy:encode(J, [force_utf8]))) ]}; diff --git a/test/jiffy_05_array_tests.erl b/test/jiffy_05_array_tests.erl index dcad7ec..1fe4542 100644 --- a/test/jiffy_05_array_tests.erl +++ b/test/jiffy_05_array_tests.erl @@ -26,7 +26,7 @@ gen(ok, {J1, E, J2}) -> gen(error, J) -> {msg("Error: ~s", [J]), [ - ?_assertThrow({error, _}, dec(J)) + ?_assertError(_, dec(J)) ]}. diff --git a/test/jiffy_06_object_tests.erl b/test/jiffy_06_object_tests.erl index 6e8834e..827184c 100644 --- a/test/jiffy_06_object_tests.erl +++ b/test/jiffy_06_object_tests.erl @@ -26,7 +26,7 @@ gen(ok, {J1, E, J2}) -> gen(error, J) -> {msg("Error: ~s", [J]), [ - ?_assertThrow({error, _}, dec(J)) + ?_assertError(_, dec(J)) ]}. diff --git a/test/jiffy_07_compound_tests.erl b/test/jiffy_07_compound_tests.erl index 7a811db..45fd383 100644 --- a/test/jiffy_07_compound_tests.erl +++ b/test/jiffy_07_compound_tests.erl @@ -26,7 +26,7 @@ gen(ok, {J1, E, J2}) -> gen(error, J) -> {msg("Error: ~s", [J]), [ - ?_assertThrow({error, _}, dec(J)) + ?_assertError(_, dec(J)) ]}. diff --git a/test/jiffy_12_error_tests.erl b/test/jiffy_12_error_tests.erl index a7d4ed6..54de9a7 100644 --- a/test/jiffy_12_error_tests.erl +++ b/test/jiffy_12_error_tests.erl @@ -84,4 +84,4 @@ enc_invalid_object_member_key_test_() -> enc_error(Type, Obj, Case) -> - ?_assertEqual({error, {Type, Obj}}, (catch jiffy:encode(Case))). + ?_assertMatch({'EXIT', {{Type, Obj}, _}}, (catch jiffy:encode(Case))).