Viewing file: example.pl (800 B) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
use lib '.'; use Error qw(:try);
use strict; use warnings;
@Error::Bad::ISA = qw(Error);
$Error::Debug = 1; # turn on verbose stacktrace
sub abc { try { try { throw Error::Simple("a simple error"); } catch Error::Simple with { my $err = shift; throw Error::Bad(-text => "some text"); } except { return { 'Error::Simple' => sub { warn "simple" } } } otherwise { 1; } finally { warn "finally\n"; }; } catch Error::Bad with { 1; }; }
sub def { unlink("not such file") or record Error::Simple("unlink: $!", $!) and return; 1; }
abc();
my $x = prior Error;
print "--\n",$x->stacktrace;
unless(defined def()) { my $x = prior Error 'main'; print "--\n",0+$x,"\n",$x; # 0+$x converts to Integer via "value" method }
|