NAME
Log::Report::Exception - a collected report
SYNOPSIS
# created within a try block
try { error "help!" };
my $exception = $@->wasFatal;
$exception->throw if $exception;
$@->reportFatal; # combination of above two lines
my $message = $exception->message; # the Log::Report::Message
if($message->inClass('die')) ...
if($exception->inClass('die')) ... # same
if($@->wasFatal(class => 'die')) ... # same
DESCRIPTION
In Log::Report, exceptions are not as extended as available in languages as Java: you do not create classes for them. The only thing an exception object does, is capture some information about an (untranslated) report.
METHODS
Constructors
Log::Report::Exception->new(OPTIONS)
Option --Default
message <required>
reason <required>
report_opts {}
. message => Log::Report::Message
. reason => REASON
. report_opts => HASH
Accessors
$obj->message
$obj->reason
$obj->report_opts
Processing
$obj->inClass(CLASS|REGEX)
Check whether any of the classes listed in the message match CLASS (string) or the REGEX. This uses Log::Report::Message::inClass().
$obj->throw(OPTIONS)
Insert the message contained in the exception into the currently defined dispatchers. The throw
name is commonly known exception related terminology for report
.
The OPTIONS overrule the captured options to Log::Report::report(). This can be used to overrule a destination. Also, the reason can be changed.
example: overrule defaults to report
try { print {to => 'stderr'}, ERROR => 'oops!' };
$@->reportFatal(to => 'syslog');
$exception->throw(to => 'syslog');
$@->wasFatal->throw(reason => 'WARNING', is_fatal => 0);
$obj->toString
Prints the reason and the message. Differently from throw(), this only represents the textual content: it does not re-cast the exceptions to higher levels.
example: printing exceptions
print $_->toString for $@->exceptions;
print $_ for $@->exceptions; # via overloading
SEE ALSO
This module is part of Log-Report distribution version 0.27, built on May 28, 2010. Website: http://perl.overmeer.net/log-report/
LICENSE
Copyrights 2007-2010 by Mark Overmeer. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html