Issue No. 08 - August (1993 vol. 19)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.238585
<p>Constructs for expressing exception handling can greatly help to avoid clutter in code by allowing the programmer to separate the code to handle unusual situations from the code for the normal case. The author proposes a new approach to embed exception handlers in functional languages. The proposed approach discards the conventional view of treating exceptions, as a means of effecting a control transfer; instead, exceptions are used to change the state of an object. The two types of exceptions, terminate and resume, are treated differently. A terminate exception, when raised, is viewed as shielding the input object. On the other hand, a resume exception designates the input object as curable and requires the immediate application of a handler function. This approach enables the clean semantics of functions raising exceptions without associating any implementation restriction and without loss of the referential transparency and the commutativity properties of functions.</p>
functional programming; exception handling; programmer; functional languages; terminate; resume; input object; implementation restriction; referential transparency; commutativity properties; exception handling; functional programming; high level languages; programming theory
R. Govindarajan, "Exception Handlers in Functional Programming Languages," in IEEE Transactions on Software Engineering, vol. 19, no. , pp. 826-834, 1993.