The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.