raxx v0.8.0 Raxx.ErrorHandler
It might make sense for this to be called something else, i.e. error handler. The aim is to ensure a productive 500/404 call is returned to the user. The formatting of this information is separate
Handling the case of a missing route would be nice, in that case return a 404 This could be done on matching on the stack trace.
try do
next.handle_request(request, %{})
catch
kind = :error, reason = :function_clause ->
stacktrace = System.stacktrace
[{mod, func, args, location} | rest] = System.stacktrace
end
asserting that func == :handle_request asserting that args are length 2.
Elixir exceptions can be caught with rescue, however throws and exits need a catch block. exceptions will also be caught in catch blocks. Elixir.Exception.normalize can be used to turn caugth errors to exceptions