Check-in Number:
|
1701 | |
Date: |
2002-Jan-30 13:28:37 (local)
2002-Jan-30 12:28:37 (UTC) |
User: | rse |
Branch: | |
Comment: |
remember the volatile situation |
Tickets: |
|
Inspections: |
|
Files: |
|
ossp-pkg/ex/ex.pod 1.13 -> 1.14
--- ex.pod 2002/01/30 12:17:58 1.13
+++ ex.pod 2002/01/30 12:28:37 1.14
@@ -174,6 +174,16 @@
block of statement(s) without any restrictions. You are even allowed to
throw (and in the B<ex_catch> block to re-throw) an exception.
+There is just one subtle portability detail you have to remember about
+B<ex_try> blocks: all accessible B<ISO-C> objects have the (expected)
+values as of the time B<ex_throw> was called, except that the values of
+objects of automatic storage invocation duration that do not have the
+C<volatile> storage class I<and> have been changed between the B<ex_try>
+invocation and B<ex_throw> are indeterminate. This is both because
+you usually do not know which commands in the B<ex_try> were already
+successful before the exception was thrown and because the underlying
+B<ISO-C> setjmp(3) facility applies those restrictions.
+
=item B<ex_throw>(I<class>, I<object>, I<value>);
This is second main construct. It builds an exception from the supplied
|
|