NAME
Log::Report::Die - compatibility routines with Perl's die/croak/confess
INHERITANCE
Log::Report::Die
is a Exporter
SYNOPSIS
# use internally only
DESCRIPTION
This module is used internally, to translate output of 'die' and Carp functions into Log::Report::Message objects. Also, it tries to convert other kinds of exception frameworks into our message object.
FUNCTIONS
- die_decode(STRING, %options)
-
The STRING is the content of
$@
after an eval() caught a die(). croak(), or confess(). This routine tries to convert this into parameters for Log::Report::report(). This is done in a very smart way, even trying to find the stringifications of$!
.Return are four elements: the error string which is used to trigger a
Log::Report
compatibledie()
, and the options, reason, and text message. The options is a HASH which, amongst other things, may contain a stack trace and location.Translated components will have exception classes
perl
, anddie
orconfess
. On the moment, thecroak
cannot be distiguished from theconfess
(when used in package main) ordie
(otherwise).The returned reason depends on whether the translation of the current
$!
is found in the STRING, and the presence of a stack trace. The following table is used:errstr stack => reason no no ERROR (die) application internal problem yes no FAULT (die) external problem, think open() no yes PANIC (confess) implementation error yes yes ALERT (confess) external problem, caught -Option--Default on_die 'ERROR'
- exception_decode($exception, %options)
-
[1.23] This function attempts to translate object of other exception frameworks into information to create a Log::Report::Exception. It returns the same list of parameters as die_decode() does.
Currently supported:
DBIx::Class::Exception
XML::LibXML::Error
SEE ALSO
This module is part of Log-Report distribution version 1.31, built on January 15, 2021. Website: http://perl.overmeer.net/CPAN/
LICENSE
Copyrights 2007-2021 by [Mark Overmeer <markov@cpan.org>]. 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://dev.perl.org/licenses/