Unveiling Exception Handling Bug Hazards in Android Based on GitHub and Google Code Issues
- 1 May 2015
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 21601852,p. 134-145
Abstract
This paper reports on a study mining the exception stack traces included in 159,048 issues reported on Android projects hosted in GitHub (482 projects) and Google Code (157 projects). The goal of this study is to investigate whether stack trace information can reveal bug hazards related to exception handling code that may lead to a decrease in application robustness. Overall 6,005 exception stack traces were extracted, and subjected to source code and byte code analysis. The out-comes of this study include the identification of the following bug hazards: (i) unexpected cross-type exception wrappings (for instance, trying to handle an instance of Out Of Memory Error "hidden" in a checked exception) which can make the exception-related code more complex and negatively impact the application robustness, (ii) undocumented runtime exceptions thrown by both the Android platform and third party libraries, and (iii) undocumented checked exceptions thrown by the Android Platform. Such undocumented exceptions make it difficult, and most of the times infeasible for the client code to protect against "unforeseen" situations that may happen while calling third-party code. This study provides further insights on such bug hazards and the robustness threats they impose to Android apps as well as to other systems based on the Java exception model.Keywords
This publication has 16 references indexed in Scilit:
- An Empirical Study of API Stability and Adoption in the Android Ecosystem2013
- Content classification of development emails2012
- Classifying field crash reports for fixing bugs: A case study of Mozilla Firefox2011
- Design tests: An approach to programmatically check your code against design rules2009
- Toward Exception-Handling Best Practices and PatternsIEEE Software, 2006
- JCrasher: an automatic robustness tester for JavaSoftware: Practice and Experience, 2004
- An uncaught exception analysis for JavaJournal of Systems and Software, 2004
- A comparative study of exception handling mechanisms for building dependable object-oriented softwareJournal of Systems and Software, 2001
- Designing robust Java programs with exceptions2000
- Exception handlingCommunications of the ACM, 1975