Christopher H. Laco > Handel-0.32 > Handel::Exception

Download:
Handel-0.32.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View Bugs
Report a bug
Source   Latest Release: Handel-1.00011

NAME ^

Handel::Exception - Exceptions used within Handel

SYNOPSIS ^

    use Handel::Cart;
    use Handel::Exception' qw(:try);

    try {
        my $cart = Handel::Cart->new('junk crap');

    } catch Handel::Exception::Argument with {
        print 'Passed the wrong arguments to method';

    } catch Handel::Exception with {
        print 'Unknown issue with Handel';
    } catch Error with {
        print 'Unhandled exception';
    } otherwise {
        print 'aliens ate my exception';
    };

DESCRIPTION ^

Handel::Exception subclasses Error and attempts to throw exceptions when unexpected things happen.

EXCEPTIONS ^

Handel::Exception

This is the base exception thrown in Handel. All other exceptions subclass Handel::Exception so it's possible to catch all Handel generated exceptions with a single catch statement.

    try {
        ...
    } catch Handel::Exception with {
        my $E = shift;
        print 'Something bad happened in Handel: ' . E->text;

    } catch MyApplicationException with {
        print 'Something bad happened in MyApplication';

    };

See Error for more information on how to use exceptions.

Handel::Exception::Constraint

This exception is thrown if a database constraint is violated. This is true for both raw DBI database constraint errors as well as field updates that don't pass constraints in Handel::Constraints.

Handel::Exception::Argument

This exception is thrown when an invalid or unexpected argument value is passed into methods.

Handel::Exception::Taglib

This exception is thrown when an unexpected error occurs within AxKit::XSP::Handel::Cart taglib.

METHODS ^

new

This returns a new Handel::Exception object. This is mostly used internally by Error. In most circumstance, you don't need to call new at all. Instead, simply use the throw syntax:

    use Handel::Exceptions;

    throw Handel::Exception::Taglib(
        -text => translate("Tag '[_1]' not valid inside of other Handel tags", $tag)
    ) if ($context[$#context] ne 'root');

SEE ALSO ^

Error, Handel::Constraints

AUTHOR ^

    Christopher H. Laco
    CPAN ID: CLACO
    claco@chrislaco.com
    http://today.icantfocus.com/blog/