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 条
  • [21] Efficient exception handling in Java']Java bytecode-to-C ahead-of-time compiler for embedded systems
    Jung, Dong-Heon
    Park, JongKuk
    Bae, Sung-Hwan
    Lee, Jaemok
    Moon, Soo-Mook
    COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2008, 34 (04) : 170 - 183
  • [22] Constructing exception handling chains for testing Java']Java virtual machine implementations
    Chen, Bochuan
    Guo, Xiao
    Chen, Yuting
    Yu, Xiaofeng
    Bu, Lei
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2024, 36 (04)
  • [23] Characterizing the Usage, Evolution and Impact of Java']Java Annotations in Practice
    Yu, Zhongxing
    Bai, Chenggang
    Seinturier, Lionel
    Monperrus, Martin
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2021, 47 (05) : 969 - 986
  • [24] An Exploratory Study of Exception Handling Behavior in Evolving Android and Java']Java Applications
    Oliveira, Juliana
    Cacho, Nelio
    Borges, Deise
    Silva, Thaisa
    Castor, Fernando
    THIRTIETH BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES 2016), 2016, : 23 - 32
  • [25] Unobtrusive Asynchronous Exception Handling with Standard Java']Java Try/Catch Blocks
    Mehrabi, Mostafa
    Giacaman, Nasser
    Sinnen, Oliver
    2018 32ND IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM (IPDPS), 2018, : 855 - 864
  • [26] Wcet Predictable Exception Mechanism For Real-Time Java']Java Platform
    Gao Zhen-Hua
    Yang Fan
    Chai Zhi-Lei
    2012 INTERNATIONAL CONFERENCE ON INDUSTRIAL CONTROL AND ELECTRONICS ENGINEERING (ICICEE), 2012, : 1713 - 1716
  • [27] EA COMPARATIVE REVIEW OF EXCEPTION HANDLING IN ADA 95, C++, AND JAVA']JAVA
    Molki, Arman
    EDULEARN10: INTERNATIONAL CONFERENCE ON EDUCATION AND NEW LEARNING TECHNOLOGIES, 2010,
  • [28] A practical method for specification and analysis of exception handling -: A Java']Java/JVM case study
    Börger, E
    Schulte, W
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2000, 26 (09) : 872 - 887
  • [29] AST Based JAVA']JAVA Software Evolution Analysis
    Jiang, Lu
    Zhang, Zhiyi
    Zhao, Zhihong
    2013 10TH WEB INFORMATION SYSTEM AND APPLICATION CONFERENCE (WISA 2013), 2013, : 180 - 183
  • [30] A Shadow Structure for Modularity of Java']Java Program Evolution
    Ajouli, Akram
    PROCEEDINGS 41ST EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS SEAA 2015, 2015, : 39 - 42