Previous: Signal-copying, Up: Signal


1.150.4 Signal: exception handling

context
Return the execution context for the #on:do: snippet


defaultAction
Execute the default handler for the raised exception


isNested
Answer whether the current exception handler is within the scope of another handler for the same exception.


isResumable
Answer whether the exception that instantiated the receiver is resumable.


outer
Raise the exception that instantiated the receiver, passing the same parameters. 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, and #outer will be equivalent to #pass.


pass
Yield control to the enclosing exception action for the receiver. Similar to #outer, but control does not return to the currently active exception handler.


resignalAs: replacementException
Reinstate all handlers and execute the handler for `replacementException'; control does not return to the currently active exception handler. The new Signal object that is created has the same arguments as the receiver (this might or not be correct – if it isn't you can use an idiom such as `sig retryUsing: [ replacementException signal ])


resume
If the exception is resumable, resume the execution of the block that raised the exception; the method that was used to signal the exception will answer the receiver. Use this method IF AND ONLY IF you know who caused the exception and if it is possible to resume it in that particular case


resume: anObject
If the exception is resumable, resume the execution of the block that raised the exception; the method that was used to signal the exception will answer anObject. Use this method IF AND ONLY IF you know who caused the exception and if it is possible to resume it in that particular case


retry
Re-execute the receiver of the #on:do: message. All handlers are reinstated: watch out, this can easily cause an infinite loop.


retryUsing: aBlock
Execute aBlock reinstating all handlers, and return its result from the #signal method.


return
Exit the #on:do: snippet, answering nil to its caller.


return: anObject
Exit the #on:do: snippet, answering anObject to its caller.