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 条
  • [11] Test of Exception Handling in Different Java']Java Virtual Machine
    Li, Tingting
    PROCEEDINGS OF THE 2016 5TH INTERNATIONAL CONFERENCE ON MEASUREMENT, INSTRUMENTATION AND AUTOMATION (ICMIA 2016), 2016, 138 : 543 - 546
  • [12] An exploratory study on exception handling bugs in Java']Java programs
    Ebert, Felipe
    Castor, Fernando
    Serebrenik, Alexander
    JOURNAL OF SYSTEMS AND SOFTWARE, 2015, 106 : 82 - 101
  • [13] Unveiling Exception Handling Guidelines Adopted by Java']Java Developers
    Melo, Hugo
    Coelho, Roberta
    Treude, Christoph
    2019 IEEE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), 2019, : 128 - 139
  • [14] As-if-serial exception handling semantics for Java']Java futures
    Zhang, Lingli
    Krintz, Chandra
    SCIENCE OF COMPUTER PROGRAMMING, 2009, 74 (5-6) : 314 - 332
  • [15] Register allocation for embedded system in the presence of Java']Java exception
    Lee, HB
    Yang, BS
    Moon, SM
    INTERACTION BETWEEN COMPILERS AND COMPUTER ARCHITECTURES, 2001, 613 : 89 - 100
  • [16] Use of Java']Java Exception Stack Trace to Improve Bug Fixing Skills of Intermediate Java']Java Learners
    Indi, Trupti S.
    Yalagi, Pratibha S.
    Nirgude, Manisha A.
    PROCEEDINGS OF 2016 INTERNATIONAL CONFERENCE ON LEARNING AND TEACHING IN COMPUTING AND ENGINEERING (LATICE 2016), 2016, : 194 - 198
  • [17] Studying the evolution of exception handling anti-patterns in a long-lived large-scale project
    de Sousa D.B.C.
    Maia P.H.M.
    Rocha L.S.
    Viana W.
    Journal of the Brazilian Computer Society, 2020, 26 (01)
  • [18] A Reflection on "An Exploratory Study on Exception Handling Bugs in Java']Java Programs"
    Ebert, Felipe
    Castor, Fernando
    Serebrenikt, Alexander
    PROCEEDINGS OF THE 2020 IEEE 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER '20), 2020, : 552 - 556
  • [19] Efficient Java']Java exception handling in just-in-time compilation
    Lee, SI
    Yang, BS
    Moon, SM
    SOFTWARE-PRACTICE & EXPERIENCE, 2004, 34 (15) : 1463 - 1480
  • [20] Research on the Novel and Efficient Mechanism of Exception Handling Techniques for Java']Java
    Lv, Xiaoqing
    PROCEEDINGS OF THE 2015 CONFERENCE ON INFORMATIZATION IN EDUCATION, MANAGEMENT AND BUSINESS, 2015, 20 : 112 - 116