From 271869889587085494baaedc6b44e939252637f0 Mon Sep 17 00:00:00 2001 From: James Fish Date: Wed, 6 May 2015 16:21:14 +0100 Subject: Exit with exit/1 on handler exception and include class in reason --- src/cowboy_handler.erl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/cowboy_handler.erl') 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 -- cgit v1.2.3