Rigorous File operation error checking

M

Marc S. Gibian

I am putting together a Perl tool to manage a large set of tasks
related to building a rather complex set of software. One of the goals
for moving to Perl is to provide very rigorous error checking and
handling. One area that has me puzzled is error checking some of the
file system operations. Just simple things such as open, rename,
unlink, print and some others ... all the sample code I've seen uses
them in a form of:

open(...) || die "message $!"

Given this is part of a large tool, I'd far prefer to capture the
error code/message, report it via my messaging & tracing mechanism so
it gets recorded in the log file as well as getting displayed to the
user, and then decide if its a fatal error or if I'm going to attempt
to forge ahead in spite of it.

I've tried capturing a status return:

$status = open(...);

but this does not seem to return a useful return value.

Can someone please help me understand how I might provide the level of
error checking and control that I am looking for?

Thanks in advance for your assistance.

-Marc
 
E

Eric J. Roode

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

(e-mail address removed) (Marc S. Gibian) wrote in
The simplest solution is:

open(...) or function("something", "$!");

There are lots of other techniques in common usage, including
exceptions with try {
open(...);
}
catch { }

blocks.

Perl has try/catch?

- --
Eric
$_ = reverse sort qw p ekca lre Js reh ts
p, $/.r, map $_.$", qw e p h tona e; print

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>

iQA/AwUBPxZz2GPeouIeTNHoEQKGCwCgoIrobbYX7ZYS8y0XUyzPA8hngscAoM3I
eIPV5XvYzpDayjWdvq+n8U5f
=ltjM
-----END PGP SIGNATURE-----
 
A

Andrew Savige

Eric J. Roode said:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

(e-mail address removed) (Marc S. Gibian) wrote in


Perl has try/catch?

In Perl 5, I suppose a rough translation is:
try -> eval block
throw -> die
catch -> test $@
though some CPAN modules allow you to use the words try and catch.
Some links on Perl exception handling:
http://www.perl.com/pub/a/2002/11/14/exception.html
http://search.cpan.org/dist/Exception-Class/
http://search.cpan.org/author/GBARR/Error-0.13/Error.pm
http://www.perlmonks.com/index.pl?node=230799
http://www.perl.com/pub/a/2002/01/15/apo4.html
http://www.perl.com/pub/a/2002/04/01/exegesis4.html

/-\
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,540
Members
45,025
Latest member
KetoRushACVFitness

Latest Threads

Top