Exception-handling bugs in Java and a language extension to avoid them

5Citations
Citations of this article
9Readers
Mendeley users who have this article in their library.
Get full text

Abstract

It is difficult to write programs that behave correctly in the presence of exceptions. We describe a dataflow analysis for finding a certain class of mistakes made while programs handle exceptions. These mistakes involve resource leaks and failures to restore program-specific invariants. Using this analysis we have found over 1,200 bugs in 4 million lines of Java. We give some evidence of the importance of the bugs we found and use them to highlight some limitations of destructors and finalizers. We propose and evaluate a new language feature, the compensation stack, to make it easier to write solid code in the presence of exceptions. These compensation stacks track obligations and invariants at run-time. Two case studies demonstrate that they can yield more natural source code and more consistent behavior in long-running programs. © 2006 Springer-Verlag Berlin/Heidelberg.

Cite

CITATION STYLE

APA

Weimer, W. (2006). Exception-handling bugs in Java and a language extension to avoid them. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 4119 LNCS, pp. 22–41). https://doi.org/10.1007/11818502_2

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free