Params::CallbackRequest::Exceptions.3pm

Langue: en

Autres versions - même langue

Version: 2010-05-04 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

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 repository at the following address:

https://svn.kineticode.com/Params-CallbackRequest/trunk/ <https://svn.kineticode.com/Params-CallbackRequest/trunk/>

Patches against Params::CallbackRequest are welcome. Please send bug reports to <bug-params-callbackrequest@rt.cpan.org>.

AUTHOR

David Wheeler <david@kineticode.com> Copyright 2003-2008 David Wheeler. Some Rights Reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.