CVS difference for ai12s/ai12-0062-1.txt
--- ai12s/ai12-0062-1.txt 2013/05/09 01:39:14 1.2
+++ ai12s/ai12-0062-1.txt 2013/07/03 20:54:52 1.3
@@ -1,5 +1,7 @@
-!standard 11.3(4/3) 13-01-31 AI12-0062-1/01
+!standard 11.3(4/2) 13-07-03 AI12-0062-1/02
!class ramification 13-01-31
+!status Amendment 202x 13-01-14
+!status ARG Approved 9-0-0 13-06-15
!status work item 13-01-31
!status received 13-01-27
!priority Low
@@ -19,12 +21,12 @@
!response
-11.3(4/3) says:
+11.3(4/2) says:
"If a string_expression is present, the expression is evaluated and its value
is associated with the exception occurrence."
-Note: This sentence is marked as Redundant, but it's not completely redundant
+This sentence is marked as Redundant, but it's not completely redundant
because it is the only text that talks about when the string_expression is
evaluated. In any case, "Redundant" is not normative, so this wording controls
the effect whether we intended it to or not.
@@ -45,25 +47,34 @@
and the equivalent call to Ada.Exceptions.Raise_Exception have precisely the
same semantics.
-For the case of the special rule added by AI12-0054-1, the string_expression
-is not evaluated, and thus it cannot propagate any exceptions.
-
!wording
-Add an AARM Ramification after 11.3(4.a):
+Add a NOTE after 11.3(4/2):
If the evaluation of a string_expression raises an exception, that exception
is propagated rather than the one denoted by the exception_name of the
raise_statement or raise_expression.
-Add an AARM Ramification after 11.3(4.d/4): [From AI12-0054-1]
-
- Note that this means that the optional string_expression of the
- raise_expression is not evaluated (thus it cannot propagate any exceptions).
-
!discussion
None needed.
+
+!corrigendum 11.3(4/2)
+
+@dinsa
+To @i<raise an exception> is to raise a new occurrence of that exception, as
+explained in 11.4. For the execution of a @fa<raise_statement> with an
+@i<exception_>@fa<name>, the named exception is raised. If a
+@i<string_>@fa<expression> is present, the @fa<expression> is evaluated and its
+value is associated with the exception occurrence. For the execution of a
+re-raise statement, the exception occurrence that caused transfer of control to
+the innermost enclosing handler is raised again.
+@dinst
+@xindent<@s9<NOTES@hr
+1 If the evaluation of a @i<string_>@fa<expression> raises an exception, that
+exception is propagated rather than the one denoted by the @i<exception_>@fa<name>
+of the @fa<raise_statement> or @fa<raise_expression>.>>
+
!ASIS
Questions? Ask the ACAA Technical Agent