Studying the Prevalence of Exception Handling Anti-Patterns
Modern programming languages, such as Java and C#, typically provide features that handle exceptions. These features separate error-handling code from regular source code and are proven to enhance the practice of software reliability, comprehension, and maintenance. Having acknowledged the advantage...
Saved in:
Main Authors | , |
---|---|
Format | Journal Article |
Language | English |
Published |
03.04.2017
|
Subjects | |
Online Access | Get full text |
DOI | 10.48550/arxiv.1704.00778 |
Cover
Summary: | Modern programming languages, such as Java and C#, typically provide features
that handle exceptions. These features separate error-handling code from
regular source code and are proven to enhance the practice of software
reliability, comprehension, and maintenance. Having acknowledged the advantages
of exception handling features, the misuse of them can still cause catastrophic
software failures, such as application crash. Prior studies suggested
anti-patterns of exception handling; while little knowledge was shared about
the prevalence of these anti-patterns. In this paper, we investigate the
prevalence of exception-handling anti-patterns. We collected a thorough list of
exception anti-patterns from 16 open-source Java and C# libraries and
applications using an automated exception flow analysis tool. We found that
although exception handling anti- patterns widely exist in all of our subjects,
only a few anti- patterns (e.g. Unhandled Exceptions, Catch Generic,
Unreachable Handler, Over-catch, and Destructive Wrapping) can be commonly
identified. On the other hand, we find that the prevalence of anti- patterns
illustrates differences between C# and Java. Our results call for further
in-depth analyses on the exception handling practices across different
languages. |
---|---|
DOI: | 10.48550/arxiv.1704.00778 |