Abstract
Exception handling in modern programming languages is a mechanism that can improve software reliability. Since the signature of an C++ function may not specify the set of exceptions that the function can propagate, it is necessary to figure out the exceptions that may be raised during executing program, the origins of them and their propagation paths. Unfortunately, in large programs that contain recursive functions, this exceptional information can be difficult, if not impossible, to determine. Therefore, the paper proposes a new static analysis approach to analyze C++ recursive functions with exception handling constructs. Firstly, it presents a model that can describe the exception handling information for a C++ single function. Then, it proposes a new method to compute the set of exception types that propagate from a recursive function. Finally, the limitations and the applications of the model are discussed.
- J. Goodenough, Exception handling: issues and a proposed notation, Communications of the ACM 18, 12, 1975, 683--696. Google Scholar
Digital Library
- A. Garcia, D. Beder, C. Rubira, An exception handling software architecture for developing fault-tolerant software, Proceedings of the 5th IEEE High Assurance Systems Engineering Symposium, USA, 2000, 311--320.Google Scholar
Cross Ref
- J. Lang, D. Stewart, A study of the applicability of existing exception-handling techniques to component-based real-time software technology. ACM Transactions on Programming Languages and Systems, 20(2), 1998, 274--301. Google Scholar
Digital Library
- A. Garcia, C. Rubira, A. Romanovsky, and et al, A comparative study of exception handling mechanisms for building dependable object-oriented software, The Journal of Systems and Software, 2001, 59: 197--222. Google Scholar
Digital Library
- B. Stroustrup: "The C++ Programming Language Special Edition)". Addison-Wesley. 2000. Google Scholar
Digital Library
- http://www.borland.com/delphi/Google Scholar
- J. Gosling, B. Joy, G. Steele, G. Bracha, The Java Language Specification (2nd Ed.). http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html. Google Scholar
Digital Library
- S. Jiang, B. Xu, Exception handling---an approach to improving software robustness, Computer Science, 30(9), 2003, 169--172.Google Scholar
- M. Fahndrich, J. Foster, J. Cu, A. Aiken, Tracking down exceptions in standard ML programs. Tech. Rep. CSD-98-996, Feb. University of California, Berkeley. 1998 Google Scholar
Digital Library
- F. Pessaux, X. Leroy, Type-based analysis of uncaught exceptions. In Proceedings of the 26th Symposium on the Principles of Programming Languages (Jan.). ACM, 1999, 276--290 Google Scholar
Digital Library
- C. Schaefer, G. Bundy, Static analysis of exception handling in Ada. Softw. Pract.Exper. 23, 10 (Oct.), 1993, 1157--1174 Google Scholar
Digital Library
- P. Brennan, Observations on program-wide Ada exception propagation. In Proceedings of the Conference on TRI-Ada '93 (Sept.). ACM, 1993, 189--195 Google Scholar
Digital Library
- J. Choi, D. Grove, M. Hind, V. Sarkar, Efficient and precise modeling of exceptions for the analysis of Java programs. In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (Sept.). ACM, 1999, 21--31 Google Scholar
Digital Library
- M. Robillard, G. Murphy, Analyzing exception flow in Java programs. In Proceedings of the Seventh European Software Engineering Conference and Seventh ACM SIGSOFT Symposium on the Foundations of Software Engineering. Lecture Notes in Computer Science (Sept.) vol. 1687. Springer-Verlag, New York, NY, 1999, 322--337 Google Scholar
Digital Library
- B. Chang, J. Jo, S. Her, Visualization of exception propagation for Java using static analysis. In Proceedings of the Second International Workshop on Source Code Analysis and Manipulation (Oct.). IEEE, CA, 2002, 173--182 Google Scholar
Digital Library
- C. Howell, D. Mularz, Exception handling in large Ada systems. Washington Ada Symposium Proceedings, June 1991, 90--101 Google Scholar
Digital Library
- C. Howell, D. Mularz, G. Bundy, Exception handling, or "when bad things happen to good programs". 14th International Conference on Software Engineering Tutorial, May 1992Google Scholar
- M. Robillard, G. Murphy, Designing robust Java programs with exceptions. In Proceedings of the 8th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (Nov.). ACM Press, New York, NY, 2000, 2--10 Google Scholar
Digital Library
- M. Robillard, G. Murphy, Static analysis to support the evolution of exception structure in object-oriented systems. ACM Transactions on Software Engineering and Methodology, Vol. 12, No. 2, April 2003, 191--221 Google Scholar
Digital Library
- S. Jiang, B Xu. An approach to analysis exception propagation. The 8th IASTED International Conference On Software Engineering And Applications, November 9-11, 2004. MIT Cambridge, MA, USA, 300-305.Google Scholar
- B. Xu, Z. Chen, Dependence analysis for recursive Java programs. ACM SIGPLAN Notices 2001 36(12). Google Scholar
Digital Library
Index Terms
An approach to analyzing recursive programs with exception handling constructs
Recommendations
Optimizing away C++ exception handling
A high performance implementation of C++ exception handling is crucial, because exception handling overhead is distributed across all code. The commonly-used table-driven approach to implementing exception handling can be augmented by an optimization ...
An analysis approach for testing exception handling programs
Exception handling is a powerful mechanism that separates the error handling code from normal code. However, incorrect usage of exception will bring about more potential faults in the code. Based on the study of exception model of C++, the paper ...
Efficient Java exception handling in just-in-time compilation
Research ArticlesJava uses exceptions to provide elegant error handling capabilities during program execution. However, the presence of exception handlers complicates the job of the just-in-time (JIT) compiler, while exceptions are rarely used in most programs. This ...






Comments