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
相关论文
共 14 条
[1]  
ASADUZZAMAN M, 2016, MSR 16, P516, DOI DOI 10.1145/2901739.2903500
[2]  
Barbosa E. A., 2012, 2012 26th Brazilian Symposium on Software Engineering (SBES), P171, DOI 10.1109/SBES.2012.22
[3]  
Bloch Joshua., 2008, The Java Series, V2nd
[4]  
Cabral B, 2007, LECT NOTES COMPUT SC, V4609, P151
[5]  
Chis A., 2017, P 24 IEEE I IN PRESS
[6]  
Grechanik M., 2010, ESEM 10
[7]  
Harrold M.J., 2008, Proceedings of the 4th International Workshop on Exception Handling, P62
[8]  
Kechagia M., 2014, Proceedings of the 11th ACM Working Conference on Mining Software Repositories, P312
[9]  
NAKSHATRI S, 2016, MSR 16, P500, DOI DOI 10.1145/2901739.2903499
[10]  
Oracle, 3 RUL EFF EXC HANDL