Where to Handle an Exception? Recommending Exception Handling Locations from a Global Perspective
Exception handling is an effective mechanism to guarantee software reliability in modern programming languages. An exception interrupts the program execution and propagates backwards along the call chain until the exception is caught by an exception handler. In software development practices, developers may be confused in determining where to place the exception handler in the call chain. The reason is that exception handling requires a developer to take a comprehensive consideration from a global perspective of the software project. In this paper, we propose an automatic approach EHAdvisor, which recommends exception handling locations from the global perspective of the project. EHAdvisor first trains a binary classification model based on four types of features, including architectural features, project features, functional features, and exception features. Then, for a new code snippet with exceptions, EHAdvisor predicts the exception catching probability for each method in the call chain based on the classification model and recommends Top-K exception handling locations based on the probability ranking. We conducted experiments on a dataset from 29 high-quality open source projects. Experimental results show that EHAdvisor achieves an average Top-1 recommendation success rate of 70.83% for across-project location recommendation and an average Top-1 accuracy of 86.21% for intra-project recommendation. Experiments on the importance scores show that global features, such as project features and architectural features, are evidently important to the recommendation of exception handling locations.
Thu 20 MayDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
02:40 - 03:00 | Source code AnalysisEarly Research Achievement (ERA) / Research / Tool Demonstration at ICPC Main Room Chair(s): Gema Rodríguez-Pérez University of Waterloo | ||
02:40 5mDemonstration | RefactorHub: A Commit Annotator for Refactoring Tool Demonstration Ryo Kuramoto Tokyo Institute of Technology, Motoshi Saeki Tokyo Institute of Technology, Shinpei Hayashi Tokyo Institute of Technology Pre-print Media Attached | ||
02:45 5mPaper | Detecting Inconsistent Thrown Exceptions Early Research Achievement (ERA) Media Attached | ||
02:50 10mPaper | Where to Handle an Exception? Recommending Exception Handling Locations from a Global Perspective Research Xiangyang Jia School of Computer Science, Wuhan University, Songqiang Chen School of Computer Science, Wuhan University, Xingqi Zhou , Xintong Li , Run Yu , Xu Chen , Jifeng Xuan Wuhan University Pre-print Media Attached |
Go directly to this room on Clowdr