.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Params::CallbackRequest::Exceptions 3pm" .TH Params::CallbackRequest::Exceptions 3pm "2011-08-09" "perl v5.12.4" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Params::CallbackRequest::Exceptions \- Parameter callback exception definitions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Params::CallbackRequest::Exceptions; \& Params::Callback::Exception::Execution\->throw("Whoops!"); \& \& use Params::CallbackRequest::Exceptions abbr => [qw(throw_cb_exec)]; \& throw_cb_exec "Whoops!"; .Ve .SH "DESCRIPTION" .IX Header "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. .SH "INTERFACE" .IX Header "INTERFACE" .SS "Exported Functions" .IX Subsection "Exported Functions" This module exports two functions by default. .PP \fI\f(CI\*(C`isa_cb_exception\*(C'\fI\fR .IX Subsection "isa_cb_exception" .PP .Vb 10 \& eval { something_that_dies() }; \& if (my $err = $@) { \& if (isa_cb_exception($err, \*(AqAbort\*(Aq)) { \& print "All hands abandon ship!"; \& } elsif (isa_cb_exception($err)) { \& print "I recall an exceptional fault."; \& } else { \& print "No clue."; \& } \& } .Ve .PP 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. .PP \fI\f(CI\*(C`rethrow_exception\*(C'\fI\fR .IX Subsection "rethrow_exception" .PP .Vb 5 \& eval { something_that_dies() }; \& if (my $err = $@) { \& # Do something intelligent, and then... \& rethrow_exception($err); \& } .Ve .PP This function takes an exception as its sole argument and rethrows it. If the argument is an object that \f(CW\*(C`can(\*(Aqthrow\*(Aq)\*(C'\fR, such as any subclass of Exception::Class, then \f(CW\*(C`rethrow_exception()\*(C'\fR will call its rethrow method. If not, but the argument is a reference, \f(CW\*(C`rethrow_exception()\*(C'\fR will simply die with it. And finally, if the argument is not a reference at all, \&\f(CW\*(C`rethrow_exception()\*(C'\fR will throw a new Params::Callback::Exception exception with the argument used as the exception error message. .PP \fIAbbreviated Exception Functions\fR .IX Subsection "Abbreviated Exception Functions" .PP 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 \&\f(CW\*(C`abbr\*(C'\fR parameter: .PP .Vb 1 \& use Params::CallbackRequest::Exceptions abbr => [qw(throw_cb_exec)]; .Ve .PP The names of the abbreviated functions are: .IP "throw_cb" 4 .IX Item "throw_cb" Params::Callback::Exception .IP "throw_bad_key" 4 .IX Item "throw_bad_key" Params::Callback::Exception::InvalidKey .IP "throw_cb_exec" 4 .IX Item "throw_cb_exec" Params::Callback::Exception::Execution .IP "throw_bad_params" 4 .IX Item "throw_bad_params" Params::Callback::Exception::Params .IP "throw_abort" 4 .IX Item "throw_abort" Params::Callback::Exception::Abort .SS "Exception Classes" .IX Subsection "Exception Classes" The exception classes created by Params::Callback::Exception are as follows: .PP \fIParams::Callback::Exception\fR .IX Subsection "Params::Callback::Exception" .PP This is the base class for all Params::Callback exception classes. Its functional alias is \f(CW\*(C`throw_cb\*(C'\fR. .PP \fIParams::Callback::Exception::InvalidKey\fR .IX Subsection "Params::Callback::Exception::InvalidKey" .PP Params::CallbackRequest throws this exception when a callback key in the parameter hash passed to \f(CW\*(C`new()\*(C'\fR has no corresponding callback. In addition to the attributes offered by Exception::Class::Base, this class also features the attribute \f(CW\*(C`callback_key\*(C'\fR. Use the \f(CW\*(C`callback_key()\*(C'\fR accessor to see what callback key triggered the exception. Params::Callback::Exception::InvalidKey's functional alias is \&\f(CW\*(C`throw_bad_key\*(C'\fR. .PP \fIParams::Callback::Exception::Execution\fR .IX Subsection "Params::Callback::Exception::Execution" .PP 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 \f(CW\*(C`callback_key\*(C'\fR, which corresponds to the parameter key that triggered the callback, and \f(CW\*(C`callback_error\*(C'\fR which is the error thrown by the callback subroutine or method. Params::Callback::Exception::Execution's functional alias is \f(CW\*(C`throw_cb_exec\*(C'\fR. .PP \fIParams::Callback::Exception::Params\fR .IX Subsection "Params::Callback::Exception::Params" .PP This is the exception thrown when an invalid parameter is passed to Params::CallbackRequest's or Params::Callback's \f(CW\*(C`new()\*(C'\fR constructors. Its functional alias is \f(CW\*(C`throw_bad_params\*(C'\fR. .PP \fIParams::Callback::Exception::Abort\fR .IX Subsection "Params::Callback::Exception::Abort" .PP This is the exception thrown by Params::Callback's \f(CW\*(C`abort()\*(C'\fR method. functional alias is \f(CW\*(C`throw_cb\*(C'\fR. In addition to the attributes offered by Exception::Class::Base, this class also features the attribute \&\f(CW\*(C`aborted_value\*(C'\fR attribute. Use the \f(CW\*(C`aborted_value()\*(C'\fR accessor to see what value was passed to \f(CW\*(C`abort()\*(C'\fR. Params::Callback::Exception::Abort's functional alias is \f(CW\*(C`throw_abort\*(C'\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" Params::Callback is the base class for all callback classes. .PP Params::CallbackRequest sets up callbacks for execution. .PP Exception::Class defines the interface for the exception classes created here. .SH "SUPPORT" .IX Header "SUPPORT" This module is stored in an open GitHub repository . Feel free to fork and contribute! .PP Please file bug reports via GitHub Issues or by sending mail to bug\-params\-callbackrequest@rt.cpan.org . .SH "AUTHOR" .IX Header "AUTHOR" David E. Wheeler .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2003\-2011 David E. Wheeler. Some Rights Reserved. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.