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

Summary

Functions

handle_request(request, map)