NAME Exception::Died - Convert simple die into real exception object SYNOPSIS # Can be loaded via Exception::Base pragma use Exception::Base 'Exception::Died'; eval { open $f, "x", "bad_open_mode" }; Exception::Died->throw( message=>"cannot open" ) if $@; eval { die "Bum!\n" }; if ($@) { my $e = Exception::Died->catch; $e->throw; } # Can replace die hook globally use Exception::Died '%SIG' => 'die'; eval { die "Boom!\n" }; print ref $@; # "Exception::Died" print $@->eval_error; # "Boom!" # Can be used in local scope only use Exception::Died; { local $SIG{__DIE__} = \&Exception::Died::__DIE__; eval { die "Boom!"; } print ref $@; # "Exception::Died" print $@->eval_error; # "Boom!" } eval { die "Boom"; } print ref $@; # "" DESCRIPTION This class extends standard Exception::Base and converts eval's error into real exception object. The eval's error message is stored in *eval_error* attribute. AUTHOR Piotr Roszatycki LICENSE Copyright (C) 2008 by Piotr Roszatycki . 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