Bertrand
Meyer (ETH Zurich and Eiffel Software) Disciplined exceptions.
The general
idea behind exceptions is to notify programs of abnormal cases occurring execution,
and allow them to recover. The proper use of exceptions, and the proper design
of an exception mechanism in a programming language, require a precise
definition of what makes a case "abnormal".
The Eiffel
approach follows from an analysis of these issues, based on the concept of
contract. Essentially, a contract violation causes the failure of an operation,
which in turns interrupts the current execution by triggering an exception. The
exception handling mechanism is also a consequence of these observations.
Starting from these ideas I will present a general enquiry into the notion of
error, and examine how one should handle exceptions in concurrent
object-oriented programming.