[Theses] [Software Engineering Research Group] [Department of Computer Science] [University of British Columbia]

Analyzing Exception Flow in Java Programs

Martin P. Robillard

M.Sc. thesis, University of British Columbia, September 1999.

PDF   gzipped
PostScript

Abstract

Exception handling mechanisms provided by programming languages are intended to ease the difficulty of developing robust software systems. Using these mechanisms, a software developer can describe the exceptional conditions a module might raise, and the response of the module to exceptional conditions that may occur as it is executing. Creating a robust system from such a localized view requires a developer to reason about the flow of exceptions across modules. The use of unchecked exceptions, and in object-oriented languages, subsumption, makes it difficult for a software developer to perform this reasoning manually. In this thesis, I describe an approach for analyzing the flow of exceptions in Java source code to produce views of the exception structure. The approach is supported by a tool called Jex. I demonstrate how Jex can help a developer identify program points where exceptions are caught accidentally, where there is an opportunity to add finer-grain recovery code, and where error handling policies are not being followed.

© Martin P. Robillard, 1999.


URL:  http://www.cs.ubc.ca/labs/se/papers/1999/UBC-CS-TR-99-02.html
File:  /pub/www/cs.ubc.ca/docs/labs/se/papers/1999/UBC-CS-TR-99-02.html