hsmyers has asked for the wisdom of the Perl Monks concerning the following question:
Using perlcritic -4 on my code I'm down to messages like:
Found use of die. Use an exception instead at line 38, column 8. Exce +ption objects should be used instead of the standard Perl error mechanism. (Severit +y: 4)
The 'offending' code is:
$hECO = retrieve($ECO_path) or die "Couldn't open $ECO_path : $!"; $hNIC = retrieve($NIC_path) or die "Couldn't open $NIC_path : $!"; $hOpening = retrieve($Opening_path) or die "Couldn't open $Opening_path : $!";
I'm wondering if the following is equivalent?
eval { $hECO = retrieve($ECO_path); 1; } or do { print "Couldn't open $ECO_path : $@"; exit; } eval { $hNIC = retrieve($NIC_path); 1; } or do { print "Couldn't open $NIC_path : $@"; exit; } eval { $hOpening = retrieve($Opening_path); 1; } or do { print "Couldn't open $Opening_path : $@"; exit; }
I'm also wondering if it is safe? What alternatives are there that don't drag in a mountain of dependencies? I've looked at Try::Tiny and TryCatch. Error is pretty much deprecated. If I have to I'll leave the code as is— but as a sort of intellectual challenge, I'd like to see what can be done.
--hsm
"Never try to teach a pig to sing...it wastes your time and it annoys the pig."
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: eval to replace die? (Exceptions and Error Handling References)
by eyepopslikeamosquito (Archbishop) on Oct 04, 2010 at 03:36 UTC | |
by hsmyers (Canon) on Oct 04, 2010 at 04:27 UTC | |
Re: eval to replace die?
by BrowserUk (Patriarch) on Oct 04, 2010 at 03:06 UTC | |
by chromatic (Archbishop) on Oct 04, 2010 at 05:21 UTC | |
by mjscott2702 (Pilgrim) on Oct 04, 2010 at 08:44 UTC | |
by chromatic (Archbishop) on Oct 04, 2010 at 14:43 UTC | |
by BrowserUk (Patriarch) on Oct 04, 2010 at 15:48 UTC | |
| |
by mjscott2702 (Pilgrim) on Oct 05, 2010 at 08:33 UTC | |
by BrowserUk (Patriarch) on Oct 04, 2010 at 13:35 UTC | |
by chromatic (Archbishop) on Oct 04, 2010 at 14:51 UTC | |
by BrowserUk (Patriarch) on Oct 04, 2010 at 15:44 UTC | |
| |
by hsmyers (Canon) on Oct 04, 2010 at 03:22 UTC | |
Re: eval to replace die?
by JavaFan (Canon) on Oct 04, 2010 at 09:05 UTC | |
by hsmyers (Canon) on Oct 04, 2010 at 23:27 UTC | |
by fireartist (Chaplain) on Oct 05, 2010 at 11:15 UTC |
Back to
Seekers of Perl Wisdom