Exception Evolution in Long-lived Java']Java Systems

被引:11
|
作者
Osman, Haidar [1 ]
Chis, Andrei [2 ]
Corrodi, Claudio [1 ]
Ghafari, Mohammad [1 ]
Nierstrasz, Oscar [1 ]
机构
[1] Univ Bern, Software Composit Grp, Bern, Switzerland
[2] Feenk GmbH, Wabern, Switzerland
来源
2017 IEEE/ACM 14TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2017) | 2017年
基金
瑞士国家科学基金会;
关键词
Exception handling; software evolution; empirical study;
D O I
10.1109/MSR.2017.21
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Exception handling allows developers to deal with abnormal situations that disrupt the execution flow of a program. There are mainly three types of exceptions: standard exceptions provided by the programming language itself, custom exceptions defined by the project developers, and third-party exceptions defined in external libraries. We conjecture that there are multiple factors that affect the use of these exception types. We perform an empirical study on long-lived Java projects to investigate these factors. In particular, we analyze how developers rely on the different types of exceptions in throw statements and exception handlers. We confirm that the domain, the type, and the development phase of a project affect the exception handling patterns. We observe that applications have significantly more error handling code than libraries and they increasingly rely on custom exceptions. Also, projects that belong to different domains have different preferences of exception types. For instance, content management systems rely more on custom exceptions than standard exceptions whereas the opposite is true in parsing frameworks.
引用
收藏
页码:302 / 311
页数:10
相关论文
共 40 条
  • [1] Dazed and Confused: Studying the Prevalence of Atoms of Confusion in Long-Lived Java']Java Libraries
    Mendes, Wendell
    Pinheiro, Oton
    Santos, Emanuele
    Rocha, Lincoln
    Viana, Windson
    2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2022), 2022, : 106 - 116
  • [2] The evolution of Java']Java build systems
    McIntosh, Shane
    Adams, Bram
    Hassan, Ahmed E.
    EMPIRICAL SOFTWARE ENGINEERING, 2012, 17 (4-5) : 578 - 608
  • [3] Analyzing exception flow in Java']Java™ programs
    Robillard, MP
    Murphy, GC
    SOFTWARE ENGINEERING - ESEC/FSE '99, PROCEEDINGS, 1999, 1687 : 322 - 337
  • [4] Understanding the Exception Handling Strategies of Java']Java Libraries: An Empirical Study
    Sena, Demostenes
    Coelho, Roberta
    Kulesza, Uira
    Bonifacio, Rodrigo
    13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), 2016, : 212 - 222
  • [5] Trends on Empty Exception Handlers for Java']Java Open Source Libraries
    Nogueira, Ana Filipa
    Ribeiro, Jose C. B.
    Zenha-Rela, Mario A.
    2017 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), 2017, : 412 - 416
  • [6] Exception Handling Mechanism in Communicating Threads for Java']Java
    Hilderink, Gerald H.
    COMMUNICATION PROCESS ARCHITECTURES 2005, 2005, 63 : 317 - 334
  • [7] Implementation of Custom Exception and its Optimization in Java']Java
    Anurag
    Akariksha
    Saxena, Ankur
    PROCEEDINGS OF THE 10TH INDIACOM - 2016 3RD INTERNATIONAL CONFERENCE ON COMPUTING FOR SUSTAINABLE GLOBAL DEVELOPMENT, 2016, : 1237 - 1242
  • [8] EDO: Exception-directed optimization in Java']Java
    Ogasawara, T
    Komatsu, H
    Nakatani, T
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2006, 28 (01): : 70 - 105
  • [9] The evolution of Java build systems
    Shane McIntosh
    Bram Adams
    Ahmed E. Hassan
    Empirical Software Engineering, 2012, 17 : 578 - 608
  • [10] A study of exception handling and its dynamic optimization in Java']Java
    Ogasawara, T
    Komatsu, H
    Nakatani, T
    ACM SIGPLAN NOTICES, 2001, 36 (11) : 83 - 95