Structured exception information
- From: Maciej Sobczak <no.spam@xxxxxxxxxxx>
- Date: Mon, 15 Jan 2007 14:44:37 +0100
Hi,
Consider an object created by a constructor function:
X : My_Type := My_Constructor(Some_Parameters);
My_Type is Controlled_Limited to ensure control over initialization and finalization. The idea of constructor function is to prevent the existence of objects that are not yet initialized, half-baked, in a bad state, etc. If the object exists, it's ready for use.
If there are problems during the execution of the constructor function, the exception is raised, so that there is no X object in a bad state.
How can I pass some error information from the constructor function out, so that it's used when the exception is handled?
Obviously, some message can be attached to the exception occurence, but it doesn't scale well - I might want to pass some more data, possibly structured (some error code, some reason code, some timestamp, some whatever else, ...).
Yes, I'm asking for "throwing objects", in the C++ parlance.
How to do this in Ada?
If I cannot - how to solve this design problem?
BTW - How can I ensure in a general way that the constructor function must be used to initialize the object, otherwise compile-time error is reported?
If I make My_Type a discriminated type (so that the discriminant value is used in the default initialization), does it limit anything, like constructor parameter types?
--
Maciej Sobczak : http://www.msobczak.com/
Programming : http://www.msobczak.com/prog/
.
- Follow-Ups:
- Re: Structured exception information
- From: Alex R. Mosteo
- Re: Structured exception information (task, ANEX E)
- From: Martin Krischik
- Re: Structured exception information
- From: Stephen Leake
- Re: Structured exception information
- From: Adam Beneschan
- Re: Structured exception information
- From: Robert A Duff
- Re: Structured exception information
- From: claude.simon@xxxxxxxxxxxxxxxxxx
- Re: Structured exception information
- Prev by Date: ANNOUNCE: Avatox 1.5 now available
- Next by Date: Translating an embedded C algorithm
- Previous by thread: ANNOUNCE: Avatox 1.5 now available
- Next by thread: Re: Structured exception information
- Index(es):
Relevant Pages
|