UBC Theses and Dissertations
Analyzing exception flow in Java (tm) programs Robillard, Martin P.
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.
Item Citations and Data