This paper addresses the issue of an exception handling mechanism that is reliably added to a language that implements data abstractions. The authors argue that such an exception handler should be (1) part of an orthogonal language, where each feature can be used in each context; (2) should allow for parameters; and (3) should allow for several classes of invocation, namely (a) resume the signaller; (b) terminate the signaller; or (c) retry the signaller. They go on to argue that propagation of the exception will destroy some of the information hiding aspects of data abstractions.
The paper then defines a replacement model of exception handling by adding exceptions and ADA-like packages to ALGOL-68. The authors give several examples of its use and provide an operational semantics definition of the exception mechanism.
This paper gives a fairly abstract view of exception handling. It will appeal mostly to those involved in designing languages or those involved in implementing realtime systems where the appropriate handling of exceptions is a necessary condition.