logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Template::Exception - Exception handling class module

Author

Description

       The "Template::Exception" module defines an object class for representing exceptions within the template
       processing life cycle.  Exceptions can be raised by modules within the Template Toolkit, or can be
       generated and returned by user code bound to template variables.

       Exceptions can be raised in a template using the "THROW" directive,

           [% THROW user.login 'no user id: please login' %]

       or by calling the throw() method on the current Template::Context object,

           $context->throw('user.passwd', 'Incorrect Password');
           $context->throw('Incorrect Password');    # type 'undef'

       or from Perl code by calling die() with a "Template::Exception" object,

           die (Template::Exception->new('user.denied', 'Invalid User ID'));

       or by simply calling die() with an error string.  This is automagically caught and converted to an
       exception of '"undef"' type (that's the literal string '"undef"' rather than Perl's undefined value)
       which can then be handled in the usual way.

           die "I'm sorry Dave, I can't do that";

       Each exception is defined by its type and a information component (e.g. error message).  The type can be
       any identifying string and may contain dotted components (e.g. '"foo"', '"foo.bar"', '"foo.bar.baz"').
       Exception types are considered to be hierarchical such that '"foo.bar"' would be a specific type of the
       more general '"foo"' type.

Methods

type()
       Returns the exception type.

   info()
       Returns the exception information.

Name

       Template::Exception - Exception handling class module

See Also

       Template, Template::Context

perl v5.40.0                                       2024-10-20                           Template::Exception(3pm)

Synopsis

           use Template::Exception;

           my $exception = Template::Exception->new($type, $info);
           $type = $exception->type;
           $info = $exception->info;
           ($type, $info) = $exception->type_info;

           print $exception->as_string();

           $handler = $exception->select_handler(\@candidates);

See Also