comp.lang.ada
 help / color / mirror / Atom feed
From: "REH" <spamjunk@stny.rr.com>
Subject: exception propagation for a distributed call
Date: 7 Mar 2006 06:54:12 -0800
Date: 2006-03-07T06:54:12-08:00	[thread overview]
Message-ID: <1141742171.664900.4710@p10g2000cwp.googlegroups.com> (raw)

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




             reply	other threads:[~2006-03-07 14:54 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-07 14:54 REH [this message]
2006-03-07 15:19 ` exception propagation for a distributed call REH
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