Code:
handle_crash(A, L) ->
?Debug("handle_crash(~p)~n", [L]),
SC=get(sc),
yaws:elog("~s", [L]),
case catch apply(SC#sconf.errormod_crash, crashmsg, [A, SC, L]) of
{html, Str} ->
accumulate_content(Str),
break;
{ehtml, Term} ->
case safe_ehtml_expand(Term) of
{error, Reason} ->
yaws:elog("~s", [Reason]),
%% Aghhh, yet another user crash :-(
T2 = [{h2, [], "Internal error"}, {hr},
{p, [], "Customized crash display code crashed !!!"}],
accumulate_content(ehtml_expand(T2)),
break;
{ok, Out} ->
accumulate_content(Out),
break
end;
Other ->
yaws:elog("Bad return value from errmod_crash ~n~p~n",[Other]),
T2 = [{h2, [], "Internal error"}, {hr},
{p, [], "Customized crash display code returned bad val"}],
accumulate_content(ehtml_expand(T2)),
break
end.