Loading…
Mining exception-handling rules as sequence association rules
Programming languages such as Java and C++ provide exception-handling constructs to handle exception conditions. Applications are expected to handle these exception conditions and take necessary recovery actions such as releasing opened database connections. However, exception-handling rules that de...
Saved in:
Published in: | International Conference on Software Engineering 2009 2009-05, Vol.2009 (2) |
---|---|
Main Authors: | , |
Format: | Article |
Language: | English |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Summary: | Programming languages such as Java and C++ provide exception-handling constructs to handle exception conditions. Applications are expected to handle these exception conditions and take necessary recovery actions such as releasing opened database connections. However, exception-handling rules that describe these necessary recovery actions are often not available in practice. To address this issue, we develop a novel approach that mines exception-handling rules as sequence association rules of the form '(FC1c1...FCcn) {AND} FCa {rightwards double arrow} (FCe1...FCem)'. This rule describes that function call FCa should be followed by a sequence of function calls (FCe1...FCem) when FCa is preceded by a sequence of function calls (FCe1...FCcn). Such form of rules is required to characterize common exception-handling rules. We show the usefulness of these mined rules by applying them on five real-world applications (including 285 KLOC) to detect violations in our evaluation. Our empirical results show that our approach mines 294 real exception-handling rules in these five applications and also detects 160 defects, where 87 defects are new defects that are not found by a previous related approach. |
---|---|
ISSN: | 0270-5257 |
DOI: | 10.1145/1273463.1273486 |