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
基金
瑞士国家科学基金会;
关键词
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
相关论文
共 50 条
  • [1] On the Evolution of Exception Usage in Java']Java Projects
    Osman, Haidar
    Chis, Andrei
    Schaerer, Jakob
    Ghafari, Mohammad
    Nierstrasz, Oscar
    2017 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), 2017, : 422 - 426
  • [2] 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
  • [3] The evolution of Java']Java build systems
    McIntosh, Shane
    Adams, Bram
    Hassan, Ahmed E.
    EMPIRICAL SOFTWARE ENGINEERING, 2012, 17 (4-5) : 578 - 608
  • [4] An uncaught exception analysis for Java']Java
    Jo, JW
    Chang, BM
    Yi, KK
    Choe, KM
    JOURNAL OF SYSTEMS AND SOFTWARE, 2004, 72 (01) : 59 - 69
  • [5] An exception monitoring system for Java']Java
    Ohe, H
    Chang, BM
    RAPID INTEGRATION OF SOFTWARE ENGINEERING TECHNIQUES, 2005, 3475 : 71 - 81
  • [6] Analyzing exception flow in Java']Java™ programs
    Robillard, MP
    Murphy, GC
    SOFTWARE ENGINEERING - ESEC/FSE '99, PROCEEDINGS, 1999, 1687 : 322 - 337
  • [7] Exception analysis in the Java']Java Native Interface
    Li, Siliang
    Tan, Gang
    SCIENCE OF COMPUTER PROGRAMMING, 2014, 89 : 273 - 297
  • [8] A formalisation of Java']Java's exception mechanism
    Jacobs, B
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2001, 2028 : 284 - 301
  • [9] Can Java']Java handle exception handling?
    Pitt, WD
    DR DOBBS JOURNAL, 1999, 24 (08): : 103 - +
  • [10] Exception analysis for multithreaded Java']Java programs
    Ryu, SY
    Yi, KK
    SECOND ASIA-PACIFIC CONFERENCE ON QUALITY SOFTWARE, PROCEEDINGS, 2001, : 23 - 30