- (1)
- When an exception occurrence is raised, normal program execution is
abandoned and control is transferred to an applicable exception_handler, if
any. To handle an exception occurrence is to respond to the exceptional
event. To propagate an exception occurrence is to raise it again in another
context; that is, to fail to respond to the exceptional event in the present
context.
Dynamic Semantics
- (2)
- Within a given task, if the execution of construct a is defined by this
International Standard to consist (in part) of the execution of construct b,
then while b is executing, the execution of a is said to dynamically enclose
the execution of b. The innermost dynamically enclosing execution of a given
execution is the dynamically enclosing execution that started most recently.
- (3)
- When an exception occurrence is raised by the execution of a given construct,
the rest of the execution of that construct is abandoned; that is, any portions
of the execution that have not yet taken place are not performed. The construct
is first completed, and then left, as explained in 7.6.1.
Then:
- (4)
- If the construct is a task_body, the exception does not propagate
further;
- (5)
- If the construct is the sequence_of_statements of a handled_sequence_of_statements that has a handler with a choice covering
the exception, the occurrence is handled by that handler;
- (6)
- Otherwise, the occurrence is propagated to the innermost
dynamically enclosing execution, which means that the occurrence
is raised again in that context.
- (7)
- When an occurrence is handled by a given handler, the choice_parameter_specification, if any, is first elaborated, which creates the choice
parameter and initializes it to the occurrence. Then, the sequence_of_statements of the handler is executed; this execution replaces the abandoned
portion of the execution of the sequence_of_statements.
-
- (8)
(1) Note that exceptions raised in a declarative_part of a body are not
handled by the handlers of the handled_sequence_of_statements of that
body.
Subclauses
- The Package Exceptions
- Example of Exception Handling
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12