---
name: "Params::CallbackRequest::Exceptions"
section: "3pm"
platform: "linux"
package: "libparams-callbackrequest-perl"
version: "1.20-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Params::CallbackRequest::Exceptions"
---

# Params::CallbackRequest::Exceptions(3pm)

Parameter callback exception definitions

## 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.
