in reply to Can we continue after an exception?

Yes. The key is to "handle" the exception before you throw it and the stack is hopelessly unwound. Something like this:
{ our @handlers; sub my_die { for (@handlers) { return if $_->(@_); } die(@_); }; sub try { my $fn = shift; local @handlers = (@_, @handlers); $fn->(); } sub blah { my_die 'omg!'; } sub unblah { try sub { blah() }, sub { if ($_[0] =~ /!/) { print "ok\n"; 1 } }; } unblah() }