1Log::Report::Exception(U3s)er Contributed Perl DocumentatLioogn::Report::Exception(3)
2
3
4

NAME

6       Log::Report::Exception - a collected report
7

SYNOPSIS

9        # created within a try block
10        try { error "help!" };
11        my $exception = $@->wasFatal;
12        $exception->throw if $exception;
13
14        $@->reportFatal;  # combination of above two lines
15
16        my $message = $exception->message;   # the Log::Report::Message
17
18        if($message->inClass('die')) ...
19        if($exception->inClass('die')) ...   # same
20        if($@->wasFatal(class => 'die')) ... # same
21

DESCRIPTION

23       In Log::Report, exceptions are not as extended as available in
24       languages as Java: you do not create classes for them.  The only thing
25       an exception object does, is capture some information about an
26       (untranslated) report.
27

METHODS

29   Constructors
30       Log::Report::Exception->new(%options)
31            -Option     --Default
32             message      <required>
33             reason       <required>
34             report_opts  {}
35
36           message => Log::Report::Message
37           reason => REASON
38           report_opts => HASH
39
40   Accessors
41       $obj->isFatal()
42           Returns whether this exception has a severity which makes it fatal
43           when thrown. [1.34] This can have been overruled with the
44           "is_fatal" attribute.  See Log::Report::Util::is_fatal().
45
46           example:
47
48             if($ex->isFatal) { $ex->throw(reason => 'ALERT') }
49             else { $ex->throw }
50
51       $obj->message( [$message] )
52           Change the $message of the exception, must be a
53           Log::Report::Message object.
54
55           When you use a "Log::Report::Message" object, you will get a new
56           one returned. Therefore, if you want to modify the message in an
57           exception, you have to re-assign the result of the modification.
58
59           example:
60
61            $e->message->concat('!!')); # will not work!
62            $e->message($e->message->concat('!!'));
63            $e->message(__x"some message {msg}", msg => $xyz);
64
65       $obj->reason( [$reason] )
66       $obj->report_opts()
67
68   Processing
69       $obj->inClass($class|Regexp)
70           Check whether any of the classes listed in the message match $class
71           (string) or the Regexp.  This uses Log::Report::Message::inClass().
72
73       $obj->print( [$fh] )
74           The default filehandle is STDOUT.
75
76           example:
77
78            print $exception;  # via overloading
79            $exception->print; # OO style
80
81       $obj->throw(%options)
82           Insert the message contained in the exception into the currently
83           defined dispatchers.  The "throw" name is commonly known exception
84           related terminology for "report".
85
86           The %options overrule the captured options to
87           Log::Report::report().  This can be used to overrule a destination.
88           Also, the reason can be changed.
89
90           example: overrule defaults to report
91
92            try { report {to => 'stderr'}, ERROR => 'oops!' };
93            $@->reportFatal(to => 'syslog');
94
95            $exception->throw(to => 'syslog');
96
97            $@->wasFatal->throw(reason => 'WARNING');
98
99       $obj->toHTML( [$locale] )
100           [1.11] as toString(), and escape HTML volatile characters.
101
102       $obj->toString( [$locale] )
103           Prints the reason and the message.  Differently from throw(), this
104           only represents the textual content: it does not re-cast the
105           exceptions to higher levels.
106
107           example: printing exceptions
108
109            print $_->toString for $@->exceptions;
110            print $_ for $@->exceptions;   # via overloading
111

OVERLOADING

113       overload: stringification
114           Produces "reason: message".
115

SEE ALSO

117       This module is part of Log-Report distribution version 1.36, built on
118       October 27, 2023. Website: http://perl.overmeer.net/CPAN/
119

LICENSE

121       Copyrights 2007-2023 by [Mark Overmeer <markov@cpan.org>]. For other
122       contributors see ChangeLog.
123
124       This program is free software; you can redistribute it and/or modify it
125       under the same terms as Perl itself.  See http://dev.perl.org/licenses/
126
127
128
129perl v5.38.0                      2023-10-27         Log::Report::Exception(3)
Impressum