skip to main content
article

An approach to analyzing recursive programs with exception handling constructs

Authors Info & Claims
Published:01 April 2006Publication History
Skip Abstract Section

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.

References

  1. J. Goodenough, Exception handling: issues and a proposed notation, Communications of the ACM 18, 12, 1975, 683--696. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarCross RefCross Ref
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. B. Stroustrup: "The C++ Programming Language Special Edition)". Addison-Wesley. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. http://www.borland.com/delphi/Google ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Jiang, B. Xu, Exception handling---an approach to improving software robustness, Computer Science, 30(9), 2003, 169--172.Google ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. Schaefer, G. Bundy, Static analysis of exception handling in Ada. Softw. Pract.Exper. 23, 10 (Oct.), 1993, 1157--1174 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. Brennan, Observations on program-wide Ada exception propagation. In Proceedings of the Conference on TRI-Ada '93 (Sept.). ACM, 1993, 189--195 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. C. Howell, D. Mularz, Exception handling in large Ada systems. Washington Ada Symposium Proceedings, June 1991, 90--101 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle Scholar
  21. B. Xu, Z. Chen, Dependence analysis for recursive Java programs. ACM SIGPLAN Notices 2001 36(12). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An approach to analyzing recursive programs with exception handling constructs

                      Recommendations

                      Comments

                      Login options

                      Check if you have access through your login credentials or your institution to get full access on this article.

                      Sign in

                      Full Access

                      PDF Format

                      View or Download as a PDF file.

                      PDF

                      eReader

                      View online with eReader.

                      eReader
                      About Cookies On This Site

                      We use cookies to ensure that we give you the best experience on our website.

                      Learn more

                      Got it!