kirancodes.me
To Proof Maintenance & Beyond!

Exception-Chain Analysis: Revealing Exception Handling Architecture in Java Server Applications

Chen Fu, Barbara G. Ryder

Abstract

Although it is common in large Java programs to rethrow exceptions, existing exception-flow analyses find only single exception-flow links, thus are unable to identify multiple-link exception propagation paths. This paper presents a new static analysis that, when combined with previous exception-flow analyses, computes chains of semantically-related exception-flow links, and thus reports entire exception propagation paths, instead of just discrete segments of them. These chains can be used 1) to show the error handling architecture of a system, 2) to assess the vulnerability of a single component and the whole system, 3) to support better testing of error recovery code, and 4) to facilitate the tracing of the root cause of a logged problem. Empirical findings and a case history for Tomcat show that a significant portion of the chains found in our benchmarks span multiple components, and thus are hard to find manually.

BibTeX
@inproceedings{Fu-Ryder:ICSE07,
  author    = {Chen Fu and
               Barbara G. Ryder},
  title     = {{Exception-Chain} Analysis: Revealing Exception Handling Architecture in Java Server Applications},
  booktitle = {ICSE},
  pages     = {230--239},
  publisher = {{IEEE} Computer Society},
  year      = {2007},
}

Related papers