NAME
Params::CallbackRequest::Exceptions - Parameter callback exception definitions
SYNOPSIS
use Params::CallbackRequest::Exceptions;
Params::Callback::Exception::Execution->throw("Whoops!");
use Params::CallbackRequest::Exceptions abbr => [qw(throw_cb_exec)];
throw_cb_exec "Whoops!";
DESCRIPTION
This module creates the exceptions used by Params::CallbackRequest and Params::Callback. The exceptions are subclasses of Exception::Class::Base, created by the interface defined by Exception::Class.
INTERFACE
Exported Functions
This module exports two functions by default.
isa_cb_exception
eval { something_that_dies() };
if (my $err = $@) {
if (isa_cb_exception($err, 'Abort')) {
print "All hands abandon ship!";
} elsif (isa_cb_exception($err)) {
print "I recall an exceptional fault.";
} else {
print "No clue.";
}
}
This function takes a single argument and returns true if it's a Params::Callback::Exception object. A second, optional argument can be used to identify a particular subclass of Params::Callback::Exception.
rethrow_exception
eval { something_that_dies() };
if (my $err = $@) {
# Do something intelligent, and then...
rethrow_exception($err);
}
This function takes an exception as its sole argument and rethrows it. If the argument is an object that can('throw')
, such as any subclass of Exception::Class, then rethrow_exception()
will call its rethrow method. If not, but the argument is a reference, rethrow_exception()
will simply die with it. And finally, if the argument is not a reference at all, rethrow_exception()
will throw a new Params::Callback::Exception exception with the argument used as the exception error message.
Abbreviated Exception Functions
Each of the exception classes created by Params::CallbackRequest::Exceptions has a functional alias for its throw class method. These may be imported by passing an array reference of the names of the abbreviated functions to import via the abbr
parameter:
use Params::CallbackRequest::Exceptions abbr => [qw(throw_cb_exec)];
The names of the abbreviated functions are:
- throw_cb
-
Params::Callback::Exception
- throw_bad_key
-
Params::Callback::Exception::InvalidKey
- throw_cb_exec
-
Params::Callback::Exception::Execution
- throw_bad_params
-
Params::Callback::Exception::Params
- throw_abort
-
Params::Callback::Exception::Abort
Exception Classes
The exception classes created by Params::Callback::Exception are as follows:
Params::Callback::Exception
This is the base class for all Params::Callback exception classes. Its functional alias is throw_cb
.
Params::Callback::Exception::InvalidKey
Params::CallbackRequest throws this exception when a callback key in the parameter hash passed to new()
has no corresponding callback. In addition to the attributes offered by Exception::Class::Base, this class also features the attribute callback_key
. Use the callback_key()
accessor to see what callback key triggered the exception. Params::Callback::Exception::InvalidKey's functional alias is throw_bad_key
.
Params::Callback::Exception::Execution
This is the exception thrown by Params::CallbackRequest's default exception handler when a callback subroutine or method dies. In addition to the attributes offered by Exception::Class::Base, this class also features the attributes callback_key
, which corresponds to the parameter key that triggered the callback, and callback_error
which is the error thrown by the callback subroutine or method. Params::Callback::Exception::Execution's functional alias is throw_cb_exec
.
Params::Callback::Exception::Params
This is the exception thrown when an invalid parameter is passed to Params::CallbackRequest's or Params::Callback's new()
constructors. Its functional alias is throw_bad_params
.
Params::Callback::Exception::Abort
This is the exception thrown by Params::Callback's abort()
method. functional alias is throw_cb
. In addition to the attributes offered by Exception::Class::Base, this class also features the attribute aborted_value
attribute. Use the aborted_value()
accessor to see what value was passed to abort()
. Params::Callback::Exception::Abort's functional alias is throw_abort
.
SEE ALSO
Params::Callback is the base class for all callback classes.
Params::CallbackRequest sets up callbacks for execution.
Exception::Class defines the interface for the exception classes created here.
SUPPORT
This module is stored in an open GitHub repository. Feel free to fork and contribute!
Please file bug reports via GitHub Issues or by sending mail to bug-params-callbackrequest@rt.cpan.org.
AUTHOR
David E. Wheeler <david@justatheory.com>
COPYRIGHT AND LICENSE
Copyright 2003-2011 David E. Wheeler. Some Rights Reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.