11.4 Exception Handling
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
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. 
 
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: 
 
If the construct is a 
task_body, 
the exception does not propagate further; 
 
Otherwise, the occurrence is 
propagated to the innermost dynamically enclosing execution, which 
means that the occurrence is raised again in that context. 
 
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe