semantics of Exception>>outer ?

John Brant brant at refactory.com
Fri Jun 27 20:37:15 UTC 2003


> From: squeak-dev-bounces at lists.squeakfoundation.org [mailto:squeak-dev-
> bounces at lists.squeakfoundation.org] On Behalf Of Anthony Hannan
> 
> What is the behavior of #outer if there is no outer handler.  Execute
> #defaultAction?  But this usually resumes from the signal.

Yes, it is supposed to execute #defaultAction if there is no outer handler.
Here's the definition from the ANSI standard:
------------------------
If the handler environment for the current exception handler contains an
exception handler that will handle the receiver, evaluate that handler's
exception action with the receiver as the argument to its handler block. If
there is no enclosing handler, send the message #defaultAction to the
receiver. The #defaultAction method is evaluated using the current exception
environment.

If the receiver is resumable and the evaluated exception action resumes then
the result returned from #outer will be the resumption value of the
evaluated exception action. If the receiver is not resumable or if the
exception action does not resume then this message will not return.

For exceptions that are not resumable, #outer is equivalent to #pass.
------------------------


John Brant




More information about the Squeak-dev mailing list