| Plack documentation | view source | Contained in the Plack distribution. |
Plack::Middleware::HTTPExceptions - Catch HTTP exceptions
use HTTP::Exception;
my $app = sub {
# ...
HTTP::Exception::500->throw;
};
builder {
enable "HTTPExceptions";
$app;
};
Plack::Middleware::HTTPExceptions is a PSGI middleware component to catch exceptions from applicaitions that can be translated into HTTP status code.
Your application is supposed to throw an object that implements
code method which returns the HTTP status code such as 501 or
404. This middleware catches them and creates a valid response out of
the code.
The exception object may also implement as_string, or overload the
stringification, to represent the text of the error, which defaults to
the status message of error codes, such as Service Unavailable for
503.
If the code is in the 3xx range and the exception implements the 'location' method (HTTP::Exception::3xx does), the Location header will be set in the response, so you can do redirects this way.
There's a CPAN module HTTP::Exception and they are pefect to throw from your application to let this middleware catch and display, but you can also implement your own exception class to throw.
All the other errors that can't be translated into HTTP errors are just rethrown to the outer frame.
Tatsuhiko Miyagawa
paste.httpexceptions HTTP::Exception
| Plack documentation | view source | Contained in the Plack distribution. |