diff options
author | James Fish <[email protected]> | 2015-05-06 16:21:14 +0100 |
---|---|---|
committer | James Fish <[email protected]> | 2015-05-07 18:43:09 +0100 |
commit | 271869889587085494baaedc6b44e939252637f0 (patch) | |
tree | 3928c75e4d0ee108a1149290c552ca13217fe50b /src/cowboy_handler.erl | |
parent | 1f5b19a0b791e5eedeb4bd0f8fcaac29e61fb03a (diff) | |
download | cowboy-271869889587085494baaedc6b44e939252637f0.tar.gz cowboy-271869889587085494baaedc6b44e939252637f0.tar.bz2 cowboy-271869889587085494baaedc6b44e939252637f0.zip |
Exit with exit/1 on handler exception and include class in reason
Diffstat (limited to 'src/cowboy_handler.erl')
-rw-r--r-- | src/cowboy_handler.erl | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/cowboy_handler.erl b/src/cowboy_handler.erl index e3faf66..952c238 100644 --- a/src/cowboy_handler.erl +++ b/src/cowboy_handler.erl @@ -52,13 +52,14 @@ execute(Req, Env) -> Stacktrace = erlang:get_stacktrace(), cowboy_req:maybe_reply(Stacktrace, Req), terminate({crash, Class, Reason}, Req, HandlerOpts, Handler), - erlang:Class([ + exit({cowboy_handler, [ + {class, Class}, {reason, Reason}, {mfa, {Handler, init, 2}}, {stacktrace, Stacktrace}, {req, cowboy_req:to_list(Req)}, {opts, HandlerOpts} - ]) + ]}) end. -spec terminate(any(), Req, any(), module()) -> ok when Req::cowboy_req:req(). @@ -68,14 +69,15 @@ terminate(Reason, Req, State, Handler) -> try Handler:terminate(Reason, cowboy_req:lock(Req), State) catch Class:Reason2 -> - erlang:Class([ + exit({cowboy_handler, [ + {class, Class}, {reason, Reason2}, {mfa, {Handler, terminate, 3}}, {stacktrace, erlang:get_stacktrace()}, {req, cowboy_req:to_list(Req)}, {state, State}, {terminate_reason, Reason} - ]) + ]}) end; false -> ok |