University of Virginia, Department of Computer Science
CS655: Programming Languages
Spring 2000

28 April 2000

Exception Mechanisms

On June 4, 1996, the European Space Agency's Ariane 5 telecommunications satellite launcher exploded approximately 40 seconds after takeoff. $500-million and thousands of man-hours were gone in less time than it takes to boil an egg. What was the cause of this catastrophe? An improperly handled exception within a piece of code not needed during the lift-off caused the Ariane 5 to break-up and explode. Instances such as this one are sending software engineers and project managers scrambling to learn more about exception handling mechanisms. Exception mechanisms allow the programmer to manage run-time errors in an orderly fashion. Through exception handling, a function can automatically invoke an error-handling routine to systematically deal with errors that might otherwise crash the entire program. Exception mechanisms exist in most modern languages. The implementation of these mechanisms is different in each language, but the goal is universal: to provide robust, disciplined exception handling that prevents catastrophic software failures. Java is a language that is quickly growing in popularity in the software community. Java incorporates the use of a system of try and catch blocks to implement exception-handling mechanisms. The programmer encapsulates her code within a "try" block, and if the code is not successful, an exception is generated with the intent that the "catch" blocks will capture the exception, dealing with it in an orderly manner. This method of exception handling is inefficient and error-prone. Through the study of exception handling mechanisms implemented by other languages, in particular C++, PL/I, CLU, and Ada, our group will make improvements to the Java language that will provide robust, disciplined exception handling worthy of the future of programming.

Members of the

Here is our:

Final Report

... and there are the reports on the exception handling of:


CS 655 University of Virginia
CS 655: Programming Languages