CC: | Mike Elliott <elliott [...] nocheck.com>, James Hoxsey <jjhoxsey [...] nocheck.com> |
Subject: | line 192: die $err; |
Date: | Tue, 28 Mar 2017 10:24:18 -0400 |
To: | bug-XML-Parser [...] rt.cpan.org |
From: | James Schueler <jschueler [...] nocheck.com> |
Code starting at line 184 (Version 2.44):
my @result = ();
my $result;
eval {
$result = $expat->parse($arg);
};
my $err = $@;
if ($err) {
$expat->release;
die $err;
}
Perl guidelines discourage arbitrarily killing a process from within a
utility library. So I am reporting this issue as a bug.
Please excuse the peevishness: I am frustrated that one of our
production processes crashed because this code doesn't distinguish
between an exception for unexpected data and a fatal error. I expect
any useful module to perform basic error handling.
Although I understand that I can wrap inside a a perl "try" (ie, eval):
1. Error handling is not discussed in the documentation
2. It's impractical to wrap every single method call "just to be safe"
3. Forcing consumer code to distinguish between exceptions and errors
violates the principle of encapsulation.
I notice larry@wall.org is listed as the original author. (Error
handling seems like a systemic weakness. :) Notwithstanding, this code
falls short of my expectations, which are established by the overall
quality of other CPAN modules. Either the code should be upgraded to
current standards, or it should be designated as obsolete. Either way,
I am happy to contribute. Please let me know.
Thanks for your attention, etc.
--
Jim Schueler
Software Developer
The NoCheck Group, LLC
Office: 248-865-3048
Fax: 248-799-1004
Support Line: 734-224-4066
Show quoted text
____________
*NOTICE:*
This message (including any attachments) is confidential and may be
privileged.
If you have received it by mistake please notify the sender by return
e-mail and delete this message from your system. Any nauthorized use or
dissemination of this message in whole or in part is strictly
prohibited. Please note that e-mails are susceptible to change. oCheck
Payment Service, LLC (including its group companies) shall not be liable
for the improper or incomplete transmission of the information contained
in this communication nor for any delay in its receipt or damage to your
system.NoCheck Payment Service, LLC (including its group companies) does
not guarantee that the integrity of this communication has been
maintained nor that this communication is free of viruses, interceptions
or interference.