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 条
  • [31] Studying the laws of software evolution in a long-lived FLOSS project
    Gonzalez-Barahona, Jesus M.
    Robles, Gregorio
    Herraiz, Israel
    Ortega, Felipe
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2014, 26 (07) : 589 - 612
  • [32] An Empirical Study of Long-Lived Code Clones
    Cai, Dongxiang
    Kim, Miryung
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, 2011, 6603 : 432 - +
  • [33] Identification and Refactoring of Exception Handling Code Smells in Java']JavaScript
    Hsieh, Chin-Yun
    Canh Le My
    Kim Thoa Ho
    Cheng, Yu Chin
    JOURNAL OF INTERNET TECHNOLOGY, 2017, 18 (06): : 1461 - 1471
  • [34] Analyzing the Evolution of Testing Library Usage in Open Source Java']Java Projects
    Zerouali, Ahmed
    Mens, Tom
    2017 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), 2017, : 417 - 421
  • [35] Benchmarking and Categorizing the Performance of Neural Program Repair Systems for Java']Java
    Zhong, Wenkang
    Li, Chuanyi
    Liu, Kui
    Ge, Jidong
    Luo, Bin
    Bissyande, TEGAWENDe F.
    Ng, Vincent
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2024, 34 (01)
  • [36] Analyzing the Evolution of Java']Javascript Applications
    Chatzimparmpas, Angelos
    Bibi, Stamatia
    Zozas, Ioannis
    Kerren, Andreas
    PROCEEDINGS OF THE 14TH INTERNATIONAL CONFERENCE ON EVALUATION OF NOVEL APPROACHES TO SOFTWARE ENGINEERING (ENASE), 2019, : 359 - 366
  • [37] Class movement and re-location: An empirical study of Java']Java inheritance evolution
    Nassed, E.
    Counsell, S.
    Shepperd, M.
    JOURNAL OF SYSTEMS AND SOFTWARE, 2010, 83 (02) : 303 - 315
  • [38] Exploring API Deprecation Evolution in Java']JavaScript
    Nascimento, Romulo
    Hora, Andre
    Figueiredo, Eduardo
    2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2022), 2022, : 169 - 173
  • [39] A Role-based Crosscutting Concerns Mining Approach to Evolve Java']Java Systems Towards AOP
    Bernardi, Mario Luca
    Di Lucca, Giuseppe Antonio
    IWPSE-EVOL 09: ERCIM WORKSHOP ON SOFTWARE EVOLUTION (EVOL) AND INTERNATIONAL WORKSHOP ON PRINCIPLES OF SOFTWARE EVOLUTION (IWPSE), 2009, : 63 - 72
  • [40] Static analysis to support the evolution of exception structure in object-oriented systems
    Robillard, MP
    Murphy, GC
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2003, 12 (02) : 191 - 221