Packages
Nitrogen Web Framework Core Library
Current section
Files
Jump to
Current section
Files
src/handlers/crash/crash_handler.erl
% vim: sw=4 ts=4 et ft=erlang
% Nitrogen Web Framework for Erlang
% Copyroght (c) 2013 Jesse Gumm
% See MIT-LICENSE for licensing information.
-module(crash_handler).
-include("wf.hrl").
-export([
first_request/3,
postback_request/3
]).
-callback init( handler_config(),
handler_state()) -> {ok, handler_state()}.
-callback finish( handler_config(),
handler_state()) -> {ok, handler_state()}.
-callback first_request( ErrorType :: term(),
Error :: term(),
Stacktrace :: list(),
handler_config(),
handler_state()) -> body().
-callback postback_request( ErrorType :: term(),
Error :: term(),
Stacktrace :: list(),
handler_config(),
handler_state()) -> ok.
-spec first_request(ErrorType :: term(), Error :: term(), Stacktrace :: list()) -> body().
%% @doc Called when an initial request's response crashes, and is used to
%% present friendly error message to the user instead of "Internal Server
%% Error"
first_request(ErrorType, Error, Stacktrace) ->
_Body = wf_handler:call_readonly(crash_handler, first_request, [ErrorType, Error, Stacktrace]).
-spec postback_request(ErrorType :: term(), Error :: term(), Stacktrace :: list()) -> ok.
%% @doc Called when a postback/comet/websocket response fails. Can be used to
%% present better message to the user that simply silently failing.
%% For example: making a javascript alert informing the user that the request
%% failed.
postback_request(ErrorType, Error, Stacktrace) ->
_Body = wf_handler:call_readonly(crash_handler, postback_request, [ErrorType, Error, Stacktrace]).