I always do things like this:
my $ok = eval { do_something(); 1 }; if (! $ok){ handle_exception(); # possibly use contents of $@ }
If I'm only doing one thing in the if block, I often will write it more compactly:
handle_exception() if ! $ok;
Sometimes I just want to croak with a separate message instead of the one generated by (perhaps not even) my code:
croak "damned module failed with a confusing error\n" if ! $ok;
These types of things are found all over my test suites. Here's one example from one of my CPAN distributions.
What this does, is if the function/method called inside the eval dies/croaks, eval returns undef. If it succeeds, it returns 1/true.
In reply to Re: Best practices for handling exceptions in die/eval style
by stevieb
in thread Best practices for handling exceptions in die/eval style
by krautcat
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |