Rigorous File operation error checking

Discussion in 'Perl' started by Marc S. Gibian, Jul 15, 2003.

  1. 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
     
    Marc S. Gibian, Jul 15, 2003
    #1
    1. Advertising

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

    (Marc S. Gibian) wrote in
    news::

    > 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-----
     
    Eric J. Roode, Jul 17, 2003
    #2
    1. Advertising

  3. "Eric J. Roode" <> wrote in message news:<Xns93BB3D33E89A5sdn.comcast@206.127.4.25>...
    > -----BEGIN PGP SIGNED MESSAGE-----
    > Hash: SHA1
    >
    > (Marc S. Gibian) wrote in
    > news::
    >
    > > 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?


    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

    /-\
     
    Andrew Savige, Jul 22, 2003
    #3
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. O.B.
    Replies:
    0
    Views:
    486
  2. Hugh Macdonald
    Replies:
    2
    Views:
    296
    Hugh Macdonald
    Sep 7, 2005
  3. david ullua
    Replies:
    13
    Views:
    680
  4. raan
    Replies:
    2
    Views:
    458
  5. Buzz Lightyear
    Replies:
    10
    Views:
    1,140
    Alexander Bartolich
    Aug 12, 2009
Loading...

Share This Page