NAME
PONAPI::Exception - Exceptions for PONAPI::Server
VERSION
version 0.003003
SYNOPSIS
use PONAPI::Exception;
PONAPI::Exception->throw( message => "Generic exception" );
PONAPI::Exception->throw(
message => "Explanation for the sql error, maybe $DBI::errstr",
sql => 1,
);
PONAPI::Exception->throw(
message => "Data had type `foo` but we wanted `bar`",
bad_request_data => 1,
);
DESCRIPTION
PONAPI::Exception can be used by repositories to signal errors; exceptions thrown this way will be caught by the DAO and handled gracefully.
Different kinds of exceptions can be thrown by changing the arguments to throw
; sql => 1
will throw a SQL exception, bad_request_data => 1
will throw an exception due to the input data being wrong, and not passing any of those will throw a generic exception.
The human-readable message
for all of those will end up in the error response returned to the user.
METHODS
message
This attribute contains the exception message.
as_string
Returns a stringified form of the exception. The object is overloaded to return this if used in string context.
as_response
Returns the exception as a 3-element list that may be fed directly to plack as a {json:api} response.
$e->as_response; # ( $status, [], { errors => [ { detail => $message } ] } )
json_api_version
Defaults to 1.0; only used in as_response
.
status
HTTP Status code for the exception; in most cases you don't need to set this manually.
AUTHORS
Mickey Nasriachi <mickey@cpan.org>
Stevan Little <stevan@cpan.org>
Brian Fraser <hugmeir@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2019 by Mickey Nasriachi, Stevan Little, Brian Fraser.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.