Network.Wai.Middleware.Catch
Description
Exception handling for Wai and Warp.
By default Warp not handles exceptions well. It just log them to
console. This package - an attempt to solve the problem.
The only drawback stems from the basic advantages of Haskell - laziness.
All errors within Wai ResponseBuilder will not be caught. Thus, the
following code will not work:
... return $ responseLBS undefined ...
To ensure catch all errors, you need to consume all data before feeding the builder.
- data ResponseHandler = forall e . Exception e => ResponseHandler (e -> Application)
- protect :: [ResponseHandler] -> Middleware
- mkHandler :: forall e. Exception e => (e -> Application) -> ResponseHandler
- defHandler :: ResponseHandler
Documentation
data ResponseHandler Source
Handler wrapper. For polymorphic exceptions.
Constructors
| forall e . Exception e => ResponseHandler (e -> Application) |
Arguments
| :: [ResponseHandler] | Wrapped handlers. See |
| -> Middleware |
Protect Middleware chain from exceptions. This acts like
catches, but uses own handler type for simplicity.
Arguments
| :: forall e . Exception e | |
| => (e -> Application) | |
| -> ResponseHandler |
Helper for make RequestHandler
protect [mkHandler myHandler] $ ...
defHandler :: ResponseHandlerSource
Default handler.