skip to main content
article

An approach to analyzing recursive programs with exception handling constructs

Published: 01 April 2006 Publication History

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.
[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.
[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.
[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.
[5]
B. Stroustrup: "The C++ Programming Language Special Edition)". Addison-Wesley. 2000.
[6]
http://www.borland.com/delphi/
[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.
[8]
S. Jiang, B. Xu, Exception handling---an approach to improving software robustness, Computer Science, 30(9), 2003, 169--172.
[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
[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
[11]
C. Schaefer, G. Bundy, Static analysis of exception handling in Ada. Softw. Pract.Exper. 23, 10 (Oct.), 1993, 1157--1174
[12]
P. Brennan, Observations on program-wide Ada exception propagation. In Proceedings of the Conference on TRI-Ada '93 (Sept.). ACM, 1993, 189--195
[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
[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
[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
[16]
C. Howell, D. Mularz, Exception handling in large Ada systems. Washington Ada Symposium Proceedings, June 1991, 90--101
[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 1992
[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
[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
[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.
[21]
B. Xu, Z. Chen, Dependence analysis for recursive Java programs. ACM SIGPLAN Notices 2001 36(12).

Cited By

View all

Index Terms

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

                      Recommendations

                      Comments

                      Information & Contributors

                      Information

                      Published In

                      cover image ACM SIGPLAN Notices
                      ACM SIGPLAN Notices  Volume 41, Issue 4
                      April 2006
                      46 pages
                      ISSN:0362-1340
                      EISSN:1558-1160
                      DOI:10.1145/1147214
                      Issue’s Table of Contents

                      Publisher

                      Association for Computing Machinery

                      New York, NY, United States

                      Publication History

                      Published: 01 April 2006
                      Published in SIGPLAN Volume 41, Issue 4

                      Check for updates

                      Author Tags

                      1. exception handling
                      2. exception propagation
                      3. programming language
                      4. recursive function
                      5. reliability
                      6. static analysis

                      Qualifiers

                      • Article

                      Contributors

                      Other Metrics

                      Bibliometrics & Citations

                      Bibliometrics

                      Article Metrics

                      • Downloads (Last 12 months)1
                      • Downloads (Last 6 weeks)0
                      Reflects downloads up to 14 Feb 2025

                      Other Metrics

                      Citations

                      Cited By

                      View all
                      • (2017)On the usage of recursive function calls in C/C++ general purpose software systemsJournal of Computing Sciences in Colleges10.5555/3144605.314461633:1(51-59)Online publication date: 1-Oct-2017
                      • (2016)A review on exception analysisInformation and Software Technology10.1016/j.infsof.2016.05.00377:C(1-16)Online publication date: 1-Sep-2016
                      • (2016)Technical Framework for Internetware: An Architecture Centric ApproachInternetware10.1007/978-981-10-2546-4_2(19-30)Online publication date: 3-Dec-2016
                      • (2008)Technical framework for Internetware: An architecture centric approachScience in China Series F: Information Sciences10.1007/s11432-008-0051-z51:6(610-622)Online publication date: 21-May-2008

                      View Options

                      Login options

                      View options

                      PDF

                      View or Download as a PDF file.

                      PDF

                      eReader

                      View online with eReader.

                      eReader

                      Figures

                      Tables

                      Media

                      Share

                      Share

                      Share this Publication link

                      Share on social media