Studying the Prevalence of Exception Handling Anti-Patterns
Guilherme B. de P\'adua, Weiyi Shang

TL;DR
This study investigates how common exception handling anti-patterns are in Java and C# software, revealing widespread issues and differences between the languages that impact software reliability.
Contribution
It provides a comprehensive analysis of the prevalence of exception handling anti-patterns across multiple open-source projects using automated flow analysis.
Findings
Anti-patterns are widespread in studied projects.
Few anti-patterns are most common, such as Unhandled Exceptions and Catch Generic.
Prevalence varies significantly between Java and C#.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Software System Performance and Reliability
