comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: is exception when others => null; smart?
Date: Fri, 25 Oct 2002 15:04:48 GMT
Date: 2002-10-25T15:04:48+00:00	[thread overview]
Message-ID: <wcclm4mk19r.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: tBTt9.1279$13.184@news1.bredband.com

"Per Sandbergs" <prsa@cntw.com> writes:

> 1)
>   main_loop:
>     loop
>       begin
>         lots of operations.
>       exception
>         when others =>
>           report the error and reset top a safe state in order to continue.
>     end loop;
> 
> 2)
> function work_is_ok(fool) return boolean is
> begin
>     some computations
> exception --
>     when others =>
>         return false; -- or report error and eventualt raise.
> end;
> 2)
> procedure must_not_raie(fool) is
> begin
>     some computations
> exception
>     when others =>
>         null;
> end;
> So when others => null is only to be used when you are expecting the
> unexpected.
> I wont be supprised if other peoplen are of different opinion but after
> integration a number of large systems i find the above aproach "wise".

Also,

4)

    when others =>
        clean up;
        raise;

As in:

    procedure Walk_Tree(...) is
    begin
        Push current node on stack;
        walk subtrees;
        Pop stack;
    exception
        when others =>
            Pop stack; -- Keep stack in synch even in case of exception.
            raise;
    end Walk_Tree;

Finalization can also be used for this purpose, and that's a cleaner way
to do it, but finalization is *very* expensive in most Ada compilers,
whereas the above "when others" is pretty cheap.

- Bob



  reply	other threads:[~2002-10-25 15:04 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-24 14:03 is exception when others => null; smart? Preben Randhol
2002-10-24 14:25 ` David C. Hoos, Sr.
2002-10-24 14:28   ` Preben Randhol
2002-10-24 14:38 ` Per Sandbergs
2002-10-25 15:04   ` Robert A Duff [this message]
2002-10-25 20:41     ` Dale Stanbrough
2002-10-26 23:04       ` Robert A Duff
2002-10-26  7:47     ` tmoran
2002-10-24 16:39 ` Mark Biggar
2002-10-24 20:06   ` Robert A Duff
2002-10-24 20:23     ` Wes Groleau
2002-10-25  1:16       ` Jeffrey Carter
2002-10-25 10:10         ` In case statment? (was Re: is exception when others => null; smart?) Preben Randhol
2002-10-25 14:59           ` Robert A Duff
2002-10-25 15:06             ` Preben Randhol
2002-10-29 18:23             ` Peter Richtmyer
2002-10-30  2:52               ` Steven Deller
2002-10-30  8:58               ` Anders Wirzenius
2002-10-30 19:57                 ` Peter Richtmyer
2002-10-31  7:02                   ` Anders Wirzenius
2002-10-30  9:36               ` Lutz Donnerhacke
2002-10-30 19:44                 ` Peter Richtmyer
2002-10-30 13:28               ` Marin David Condic
2002-10-30 20:34                 ` Robert Spooner
2002-10-31 12:40                   ` In case statment? (was Re: is exception when others => null;smart?) Marin David Condic
2002-10-25 17:13           ` In case statment? <...> when others John Woodruff
2002-10-27 21:03           ` In case statment? (was Re: is exception when others => null; smart?) Ze Administrator
2002-10-28 10:04             ` Preben Randhol
2002-10-28 20:05               ` Wes Groleau
2002-10-30 11:31                 ` Preben Randhol
2002-10-28 12:32             ` In case statment? (was Re: is exception when others => null;smart?) Adrian Hoe
2002-10-24 20:11   ` is exception when others => null; smart? Simon Wright
2002-10-24 21:22     ` Larry Kilgallen
2002-10-24 20:03 ` Robert A Duff
2002-10-25  1:49 ` SteveD
2002-10-25  3:48 ` Dennis Lee Bieber
2002-10-26 11:34   ` Preben Randhol
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox