comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Common exception handling
Date: Tue, 26 Aug 2008 07:43:20 -0700 (PDT)
Date: 2008-08-26T07:43:20-07:00	[thread overview]
Message-ID: <ba811359-e5b7-4e06-90e6-479755d9d28c@25g2000prz.googlegroups.com> (raw)
In-Reply-To: f3921f63-7e3e-409e-b346-f9a62d976f1a@x16g2000prn.googlegroups.com

On Aug 26, 6:47 am, shaunpatter...@gmail.com wrote:
> Yeah, it looks like the extra layer of exception handling is the only
> way. I was hoping I could avoid that if possible.

No, I don't think it's the only way.  I'm surprised no one has
suggested this:

   exception
      when E : others =>
         Print_Test (Rec);
         declare
             use Ada.Exceptions;
         begin
             if Exception_Identity(E) = A'Identity then
                ... handling for A
             elsif Exception_Identity(E) = B'Identity then
                ... handling for B
             etc.
             else
                ... handling for other exceptions you didn't expect,
                ... but you certainly need to aware that it could
                ... happen
                raise;  --maybe
             end if;
         end;

                            -- Adam




  reply	other threads:[~2008-08-26 14:43 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-26 12:17 Common exception handling shaunpatterson
2008-08-26 12:37 ` Ludovic Brenta
2008-08-26 12:39 ` Martin
2008-08-26 12:48   ` Ludovic Brenta
2008-08-26 12:58     ` Martin
2008-08-26 13:47       ` shaunpatterson
2008-08-26 14:43         ` Adam Beneschan [this message]
2008-08-26 15:10           ` Dmitry A. Kazakov
2008-08-26 16:49             ` Adam Beneschan
2008-08-26 19:14               ` Dmitry A. Kazakov
2008-08-26 20:22                 ` Maciej Sobczak
2008-08-27  8:16                   ` Dmitry A. Kazakov
2008-08-27  9:20                   ` Georg Bauhaus
2008-08-29  8:32           ` Martin
2008-08-29 15:31             ` Adam Beneschan
2008-09-10 22:51               ` Martin
2008-09-11 14:57                 ` Adam Beneschan
2008-08-26 15:18         ` Jean-Pierre Rosen
replies disabled

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