skip to main content
10.1145/2851613.2851793acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Integrated analysis of exception flows and handler actions in Java libraries: an empirical study

Authors Info & Claims
Published:04 April 2016Publication History

ABSTRACT

This paper presents an empirical study of exception handling strategies in Java libraries. The study conducts an integrated analysis of exception flows and handler actions from Java libraries with the aim to understand the impact of adopted exception handling strategies from the perspective of libraries' users. We extended an existing static analysis tool to identify exception flows in software libraries and collected data from the eight most downloaded Java libraries in Maven repository. After that, manual analysis was performed to categorize the tailored handler actions for each exception handler. Our results show that a high number of uncaught runtime exceptions and subsumption handlers were applied in some libraries. We also investigated the community anti-patterns implemented by handler actions in exception flows. Our results reveal the need to have automated support to allow the integrated analysis of exception flows and their handler actions explicitly.

References

  1. Cabral, B., and Marques, P. (2007). Exception Handling: A Field Study in Java and .NET. ECOOP 2007 - Object-Oriented Programming, 151--175. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Coelho, R., Rashid, A. G., Ferrari, F., Cacho, N., Kulesza, U., Staa, A., and Lucena, C. (2008). Assessing the Impact of Aspects on Exception Flows: An Exploratory Study. Proceedings of the 22nd European Conference on Object-Oriented, 207--234. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Sawadpong, P., Allen, B. E., and Willians, J. B. (2012). Exception Handling Defects: An Empirical Study. 14th International Symposium on High-Assurance Systems Engineering, pp. 90--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Robillard, M. P., and Murphy, G. C. (2003). Static Analysis to Support the Evolution of Exception Structure in Object-Oriented Systems. ACM Transactions on Software Engineering and Methodology (TOSEM), pp. 191--221. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Gosling, J. (2000). The Java Language Specification. Addison-Wesley Professional. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Miller, R., and Tripathi, A. (1997). Issues with Exception Handling in Object-Oriented Systems. ECOOP'97 - Object-Oriented Programming, 85--103.Google ScholarGoogle Scholar
  7. Melo, H., Coelho, R., Kulesza, U., & Sena, D. (2013). In-depth Characterization of Exception Flows in Software Product Lines: An Empirical Study. Journal of Software Engineering Research and Development.Google ScholarGoogle Scholar
  8. Bacon, D. F., & Sweeney, P. F. (6-10 de Oct de 1996). Fast Static Analysis of C++ Virtual Function Calls. Conference on Object-Oriented Programming Systems, Languages and Applications, pp. 324--341. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Shivers, O. (May de 1991). Control-Flow Analysis of High-Order Languages. PhD thesis, Carnegie-Mellon University, 1991. CMU-CS-91-145. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Robillard, M. P., and Murphy, G. C. (2000). Designing Robust Java Programs with Exceptions. International Conference on the Foundations of Software Engineering (FSE), pp. 2--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Rebecca J Wirfs-Brock. Towards Exception-Handling Best Practices and Patterns. IEEE Software, V 23 (5), IEEE Computer Society, pp. 11--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. McCune, T. (04 de 06 de 2006). Exception Handling Antipatterns. Retrieve August 21, 2015, from java.net: http://today.java.net/pub/a/today/2006/04/06/exception-handling-antipatterns.htmlGoogle ScholarGoogle Scholar
  13. Gulwani, S., & Necula, G. C. (2005). Precise Interprocedural Analysis using Random Interpretation. Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 324--337. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Fu, C., & Ryder, B. G. (2007). Exception-Chain Analysis: Revealing Exception Handling Architecture in Java Server Applications. International Conference on Software Engineering (ICSE 2007), pp. 230--239. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Chang, B.-M., Jo, J.-W., and Her, H. S. (2002). Visualization of Exception Propagation for Java using static analysis. Proceedings Second IEEE Internation Workshop on Source Code Analysis and Manipulation, pp. 173--182. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Sinha, S., Orso, A., & Harrold, M. J. (23 de May de 2004). Automated Support for Development, Maintenance and Testing in the Presence of Implicit Control Flow. Proceedings in 26th International Conference on Software Engineering, pp. 336--345. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Rahman, M. M., & Roy, C. K. (2014). On the Use of Context in Recommending Exception Handling Code Examples. IEEE 14th International Working Conference on Source Code Analysis and Manipulation, pp. 285--294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Barbosa, E. A., Garcia, A., & Mezini, M. (2012). Heuristic Strategies for Recommendation of Exception Handling Code. 26th Brazilian Symposium on Software Engineering, pp. 171--180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Thummalapenta, S., and Xie, T. (2009). Mining Exception-handling Rules As Sequence Association Rules. Proceedings of the 31st International Conference on Software Engineering, pp. 496--506. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Shah, H., Gorg, C., and Harrold, M. J. (2008). Visualization of Exception Handling Constructs to Support Program Understanding. Proceedings of the 4th ACM Symposium on Software Visualization, pp. 19--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Fu, C., and Ryder, B. G. (2005). Navigating Error Recovery Code in Java Applications. Proceeding Eclipse'05 Proceedings of the 2005 OOPSLA Workshop on Eclipse Technology Exchange, pp. 40--44. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Integrated analysis of exception flows and handler actions in Java libraries: an empirical study

    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
    • Published in

      cover image ACM Conferences
      SAC '16: Proceedings of the 31st Annual ACM Symposium on Applied Computing
      April 2016
      2360 pages
      ISBN:9781450337397
      DOI:10.1145/2851613

      Copyright © 2016 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 4 April 2016

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      SAC '16 Paper Acceptance Rate252of1,047submissions,24%Overall Acceptance Rate1,650of6,669submissions,25%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader