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.