Modeling the Exception Flow in PHP Systems

More Info
expand_more

Abstract

The goal of this thesis is to learn how exception handling constructs are used by PHP developers. We present an approach for detecting the exception flow of a software system, based on the work of Robillard and Murphy (2003). We show the accuracy of this approach by evaluating the tool on a corpus of three different PHP systems. The approach is thereafter used to perform an empirical study on a corpus of 20 PHP systems. For each of these systems, we compute the exception flow and measure the number of exceptions that are encountered, how often exceptions are propagated before they are caught, by what type they are typically caught, and whether they are documented. The results show that many exceptions are propagated often before they are caught and that many are caught by subsumption. Another finding is that exceptions are often not documented, which in many cases is a violation of the Liskov Substitution Principle.