comp.lang.ada
 help / color / mirror / Atom feed
From: "REH" <spamjunk@stny.rr.com>
Subject: Re: exception propagation for a distributed call
Date: 7 Mar 2006 07:19:35 -0800
Date: 2006-03-07T07:19:35-08:00	[thread overview]
Message-ID: <1141744775.715048.32970@z34g2000cwc.googlegroups.com> (raw)
In-Reply-To: <1141742171.664900.4710@p10g2000cwp.googlegroups.com>


REH wrote:
> I need to implement something that has probably already been done
> hundreds of times.  I have to implement some distributed calls (i.e.,
> across sockets, arinc ports, separate memory partitions, etc.).  I need
> to trap any exception that may occur, and re-raise it for the caller,
> like CORBA does (though I cannot use CORBA, RPC, etc.).  I also do not
> want to replicate a lot of code in each exception block.  What I have
> so far is to create a procedure that will take an exception occurence
> as a parameter and call it in each exception block at a "when others
> =>" arm.  The function returns an enumeration value for the exception
> which can be marshalled across and re-raised via a case statement.
> What I cannot figure out is how to convert the occurrence in a portable
> way so I do not have to use compiler-specific features.  I know I can
> convert it to an exception_id, but how do I determine which exception
> the id is for?  Is there a way to get the id of an exception without
> raising it?  Or, is there a better way
>
> Thanks,
>
> REH

Ah, I should have dug deeper before asking.  I just discovered I can
do: E'Identity on an exception.

Thanks.

REH




  reply	other threads:[~2006-03-07 15:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-07 14:54 exception propagation for a distributed call REH
2006-03-07 15:19 ` REH [this message]
2006-03-07 16:11 ` Wilhelm Spickermann
2006-03-07 16:52   ` REH
2006-03-07 17:37     ` Wilhelm Spickermann
2006-03-07 17:58       ` REH
2006-03-07 18:44     ` Martin Krischik
replies disabled

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