=encoding utf8 =head1 NAME Log::Report::Exception - a collected report =head1 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 =head1 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. =head1 METHODS =head2 Constructors =over 4 =item Log::Report::Exception-EB(%options) -Option --Default message reason report_opts {} =over 2 =item message => Log::Report::Message =item reason => REASON =item report_opts => HASH =back =back =head2 Accessors =over 4 =item $obj-EB() Returns whether this exception has a severity which makes it fatal when thrown. See L. example: if($ex->isFatal) { $ex->throw(reason => 'ALERT') } else { $ex->throw } =item $obj-EB( [$message] ) Change the $message of the exception, must be a L object. When you use a C object, you will get a new one returned. Therefore, if you want to modify the message in an exception, you have to re-assign the result of the modification. example: $e->message->concat('!!')); # will not work! $e->message($e->message->concat('!!')); $e->message(__x"some message {msg}", msg => $xyz); =item $obj-EB( [$reason] ) =item $obj-EB() =back =head2 Processing =over 4 =item $obj-EB($class|Regexp) Check whether any of the classes listed in the message match $class (string) or the Regexp. This uses L. =item $obj-EB( [$fh] ) The default filehandle is STDOUT. example: print $exception; # via overloading $exception->print; # OO style =item $obj-EB(%options) Insert the message contained in the exception into the currently defined dispatchers. The C name is commonly known exception related terminology for C. The %options overrule the captured options to L. 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'); =item $obj-EB( [$locale] ) [1.11] as L, and escape HTML volatile characters. =item $obj-EB( [$locale] ) Prints the reason and the message. Differently from L, 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 =back =head1 OVERLOADING =over 4 =item overload: B Produces "reason: message". =back =head1 SEE ALSO This module is part of Log-Report distribution version 1.31, built on January 15, 2021. Website: F =head1 LICENSE Copyrights 2007-2021 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 F