{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:39:58Z","timestamp":1750307998689,"version":"3.41.0"},"reference-count":20,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2006,4,1]],"date-time":"2006-04-01T00:00:00Z","timestamp":1143849600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGPLAN Not."],"published-print":{"date-parts":[[2006,4]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/1147214.1147220","type":"journal-article","created":{"date-parts":[[2006,10,18]],"date-time":"2006-10-18T22:35:32Z","timestamp":1161210932000},"page":"30-35","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["An approach to analyzing recursive programs with exception handling constructs"],"prefix":"10.1145","volume":"41","author":[{"given":"Shujuan","family":"Jiang","sequence":"first","affiliation":[{"name":"Southeast University, Nanjing, China and Jiangsu Institute of Software Quality, Nanjing, China and China University of Mining &amp; Technology, Xuzhou, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Baowen","family":"Xu","sequence":"additional","affiliation":[{"name":"Southeast University, Nanjing, China and Jiangsu Institute of Software Quality, Nanjing, China and National University of Defense Technology, Changsha, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Liang","family":"Shi","sequence":"additional","affiliation":[{"name":"Southeast University, Nanjing, China and Jiangsu Institute of Software Quality, Nanjing, China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2006,4]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/361227.361230"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/HASE.2000.895476"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/276393.276395"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0164-1212(01)00062-0"},{"key":"e_1_2_1_5_1","volume-title":"The C++ Programming Language Special Edition)","author":"Stroustrup B.","year":"2000","unstructured":"B. Stroustrup : \" The C++ Programming Language Special Edition) \". Addison-Wesley . 2000 . B. Stroustrup: \"The C++ Programming Language Special Edition)\". Addison-Wesley. 2000."},{"key":"e_1_2_1_6_1","unstructured":"http:\/\/www.borland.com\/delphi\/  http:\/\/www.borland.com\/delphi\/"},{"key":"e_1_2_1_7_1","volume-title":"The Java Language Specification","author":"Gosling J.","unstructured":"J. Gosling , B. Joy , G. Steele , G. Bracha , The Java Language Specification ( 2 nd Ed.). http:\/\/java.sun.com\/docs\/books\/jls\/second_edition\/html\/j.title.doc.html. 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.","edition":"2"},{"issue":"9","key":"e_1_2_1_8_1","first-page":"169","article-title":"Xu, Exception handling---an approach to improving software robustness","volume":"30","author":"Jiang S.","year":"2003","unstructured":"S. Jiang , B . Xu, Exception handling---an approach to improving software robustness , Computer Science , 30 ( 9 ), 2003 , 169 -- 172 . S. Jiang, B. Xu, Exception handling---an approach to improving software robustness, Computer Science, 30(9), 2003, 169--172.","journal-title":"Computer Science"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/292540.292565"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380231007"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/170657.170734"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/316158.316171"},{"key":"e_1_2_1_14_1","series-title":"Lecture Notes in Computer Science (Sept.)","volume-title":"Proceedings of the Seventh European Software Engineering Conference and Seventh ACM SIGSOFT Symposium on the Foundations of Software Engineering","author":"Robillard M.","year":"1999","unstructured":"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 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"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.5555\/827253.827733"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/134494.134503"},{"key":"e_1_2_1_17_1","volume-title":"14th International Conference on Software Engineering Tutorial","author":"Howell C.","year":"1992","unstructured":"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 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"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/355045.355046"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/941566.941569"},{"key":"e_1_2_1_20_1","first-page":"300","volume-title":"The 8th IASTED International Conference On Software Engineering And Applications","author":"Jiang S.","year":"2004","unstructured":"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 . 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."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/583960.583969"}],"container-title":["ACM SIGPLAN Notices"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1147214.1147220","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1147214.1147220","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T15:06:23Z","timestamp":1750259183000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1147214.1147220"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2006,4]]},"references-count":20,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2006,4]]}},"alternative-id":["10.1145\/1147214.1147220"],"URL":"https:\/\/doi.org\/10.1145\/1147214.1147220","relation":{},"ISSN":["0362-1340","1558-1160"],"issn-type":[{"type":"print","value":"0362-1340"},{"type":"electronic","value":"1558-1160"}],"subject":[],"published":{"date-parts":[[2006,4]]},"assertion":[{"value":"2006-04-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}