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 条
  • [11] Generic exception handling and the Java']Java monad
    Schröder, L
    Mossakowski, T
    ALGEBRAIC METHODOLOGY AND SOFTWARE TECHNOLOGY: PROCEEDINGS, 2004, 3116 : 443 - 459
  • [12] JET: Exception Checking in the Java']Java Native Interface
    Li, Siliang
    Tan, Gang
    OOPSLA 11: PROCEEDINGS OF THE 2011 ACM INTERNATIONAL CONFERENCE ON OBJECT ORIENTED PROGRAMMING SYSTEMS LANGUAGES AND APPLICATIONS, 2011, : 345 - 357
  • [13] Exception Handling Mechanism in Communicating Threads for Java']Java
    Hilderink, Gerald H.
    COMMUNICATION PROCESS ARCHITECTURES 2005, 2005, 63 : 317 - 334
  • [14] 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
  • [15] Exception handling with resumption: Design and implementation in Java']Java
    Gruler, A
    Heinlein, C
    PLC '05: Proceedings of the 2005 International Conference on Programming Languages and Compilers, 2005, : 165 - 171
  • [16] How Developers Use Exception Handling in Java']Java?
    Asaduzzaman, Muhammad
    Ahasanuzzaman, Muhammad
    Roy, Chanchal K.
    Schneider, Kevin A.
    13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), 2016, : 516 - 519
  • [17] 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
  • [18] Exception handling: A field study in Java']Java and NET
    Cabral, Bruno
    Marques, Paulo
    ECOOP 2007 - OBJECT-ORIENTED PROGRAMMING, PROCEEDINGS, 2007, 4609 : 151 - +
  • [19] JET: Exception Checking in the Java']Java Native Interface
    Li, Siliang
    Tan, Gang
    ACM SIGPLAN NOTICES, 2011, 46 (10) : 345 - 357
  • [20] The evolution of Java build systems
    Shane McIntosh
    Bram Adams
    Ahmed E. Hassan
    Empirical Software Engineering, 2012, 17 : 578 - 608