Provided by: libparams-callbackrequest-perl_1.20-1_all bug

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 <http://github.com/theory/params-
       callbackrequest/>. Feel free to fork and contribute!

       Please file bug reports via GitHub Issues <http://github.com/theory/params-
       callbackrequest/issues/> or by sending mail to bug-params-callbackrequest@rt.cpan.org
       <mailto: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.