Project Components
Abstract
Exception handling is a powerful and widely-used programming language abstraction for constructing robust software systems.Unfortunately, it introduces an inter-procedural flow of control that can be dicult to reason about. Failure to do so correctly can lead to security vulnerabilities, breaches of API encapsulation, and any number of safety policy violations.
We present a fully automated tool that statically infers and characterizes exception-causing conditions in Java programs. Our tool is based on an inter-procedural, context-sensitive analysis. The output of this tool is well-suited for use as human-readable documentation of exceptional conditions.
We evaluate the output of our tool by comparing it to over 900 instances of existing exception documentation in
almost two million lines of code. We nd that the output of our tool is at least as good as existing documentation 85% of the time and is better 25% of the time.
Paper
Presentations
Software Resources
Soot - Java bytecode analysis framework
Eclipse JDT - excellent for parsing java files, including JavaDoc
FindBugs - Looks for errors in java byte code.
