unwind_expression: unwind `(' protection `)' body ; protection: expression ;
An unwind
evaluates the body
, followed by the evaluation
of the protection
. The value returned by the unwind
is
the value of its body.
If, during the evalutation of the body, a tag is thrown, prematurely
exiting the context of the unwind
, the protection expression is
still evaluated. If the protection code does not raise or throw
anything, then after its evaluation the original throw causing its
invocation will continue to be thrown futher.
Go to the first, previous, next, last section, table of contents.