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 bytecode analysis. The outcomes
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 OutOfMemoryError
“hidden” in a checked exception) which can make the exceptionrelated
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 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.
|