Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
2-2019
Abstract
Despite being an old language feature, Java exception handling code is one of the least understood parts of many systems. Several studies have analyzed the characteristics of exception handling code, trying to identify common practices or even link such practices to software bugs. Few works, however, have investigated exception handling issues from the point of view of developers. None of the works have focused on discovering exception handling guidelines adopted by current systems - which are likely to be a driver of common practices. In this work, we conducted a qualitative study based on semi-structured interviews and a survey whose goal was to investigate the guidelines that are (or should be) followed by developers in their projects. Initially, we conducted semi-structured interviews with seven experienced developers, which were used to inform the design of a survey targeting a broader group of Java developers (i.e., a group of active Java developers from top-starred projects on GitHub). We emailed 863 developers and received 98 valid answers. The study shows that exception handling guidelines usually exist (70%) and are usually implicit and undocumented (54%). Our study identifies 48 exception handling guidelines related to seven different categories. We also investigated how such guidelines are disseminated to the project team and how compliance between code and guidelines is verified; we could observe that according to more than half of respondents the guidelines are both disseminated and verified through code inspection or code review. Our findings provide software development teams with a means to improve exception handling guidelines based on insights from the state of practice of 87 software projects.
Keywords
exception handling, exception handling guidelines, Java development, qualitative study
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
Proceedings of the 26th International Conference on Software Analysis, Evolution, and Reeingineering, Hangzhou, China, 2019 February 24-27
First Page
128
Last Page
139
ISBN
9781728105918
Identifier
10.1109/SANER.2019.8668001
Publisher
IEEE
City or Country
Piscataway, NJ
Citation
MELO, Hugo; COELHO, Roberta; and TREUDE, Christoph.
Unveiling exception handling guidelines adopted by Java developers. (2019). Proceedings of the 26th International Conference on Software Analysis, Evolution, and Reeingineering, Hangzhou, China, 2019 February 24-27. 128-139.
Available at: https://ink.library.smu.edu.sg/sis_research/8879
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/SANER.2019.8668001