How Does Exception Handling Behavior Evolve? An Exploratory Study in Java and C# Applications

@article{Cacho2014HowDE,
  title={How Does Exception Handling Behavior Evolve? An Exploratory Study in Java and C\# Applications},
  author={Nelio Alessandro Azevedo Cacho and Eiji Adachi Barbosa and Juliana Araujo and Frederico Pranto and Alessandro F. Garcia and Thiago C{\'e}sar and Eliezio Soares and Arthur Cassio and Thomas Filipe and Israel Garc{\'i}a},
  journal={2014 IEEE International Conference on Software Maintenance and Evolution},
  year={2014},
  pages={31-40}
}
  • N. Cacho, E. Barbosa, Israel García
  • Published 29 September 2014
  • Computer Science
  • 2014 IEEE International Conference on Software Maintenance and Evolution
Exception handling mechanisms (EHM) were conceived as a means to improve maintainability and reliability of programs that have to deal with exceptional situations. Amongst the different implementations of built-in EHM, we classify them in two main categories: reliability-driven and maintenance-driven. Some programming languages, such as Java, provide built-in exception handling mechanisms that promote reliability-driven EHMs. Maintenance-driven EHMs, on the other hand, promote software… 

Figures and Tables from this paper

Contrasting exception handling code across languages: An experience report involving 50 open source projects
TLDR
The analysis confirms the existing belief that developers often pay little attention to developing exception scoping and handling behaviour and suggests that certain exception handling mechanisms are less explored by programmers using certain programming languages.
Revisiting Exception Handling Practices with Exception Flow Analysis
  • G. B. D. Pádua, Weiyi Shang
  • Computer Science
    2017 IEEE 17th International Working Conference on Source Code Analysis and Manipulation (SCAM)
  • 2017
TLDR
This case study is conducted with over 10K exception handling blocks, and over 77K related exception flows from 16 open-source Java and C# (.NET) libraries and applications, and shows that there is a lack of documentation of the possible exceptions and their sources.
Studying the Relationship between Exception Handling Practices and Post-Release Defects
  • G. B. D. Pádua, Weiyi Shang
  • Computer Science
    2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR)
  • 2018
TLDR
It is found that exception flow characteristics in Java projects have a significant relationship with post- release defects, and development teams should consider allocating more resources to improving their exception handling practices and avoid the anti-patterns that are found to have a relationship withPost-release defects.
How Swift Developers Handle Errors
TLDR
It is indicated that there is ample opportunity to improve the way Swift developers use error handling mechanisms, and some recommendations derived in this work are not well spread in the corpus of studied Swift projects.
Enforcing Exception Handling Policies with a Domain-Specific Language
TLDR
Exception Handling Policies Language is presented, a domain-specific language to specify and verify exception handling policies and some language characteristics that hindered its use and that motivated new language constructs are identified.
Studying the evolution of exception handling anti-patterns in a long-lived large-scale project
TLDR
It is suggested that the absence of an explicit exception handling policy impacts negatively in the developers’ perception and implementation of exception handling, leading developers to replicate existing anti-patterns and spread them through new features added during system evolution.
Preventing Erosion in Exception Handling Design Using Static-Architecture Conformance Checking
TLDR
The ArCatch is proposed: an architectural conformance checking solution to deal with the exception handling design erosion and proves useful and effective in the identification of existing exception handling erosion problems and locating its causes in the source code.
Learning to Handle Exceptions
TLDR
A novel neural approach to automated exception handling is proposed, which can predict locations of try blocks and automatically generate the complete catch blocks and outperforms all baselines.
Mastering global exceptions with policy-aware recommendations
TLDR
This work aims at supporting the implementation of global exception handling by leveraging on explicit specifications of exception handling policies, and is the first one to provide support for specifying exception handling Policies and writing policy-compliant exception handling code.
...
1
2
3
...

References

SHOWING 1-10 OF 31 REFERENCES
Trading robustness for maintainability: an empirical study of evolving c# programs
TLDR
Most of the problems hindering software robustness in C# programs are caused by changes in the normal code, and faults are often facilitated by the maintenance-driven flexibility of the exception handling mechanism.
Assessing the Impact of Aspects on Exception Flows: An Exploratory Study
TLDR
The findings show that exception handling code in AO systems is error-prone, since all versions analyzed presented an increase in the number of uncaughtexceptions and exceptions caught by the wrong handler.
Static analysis to support the evolution of exception structure in object-oriented systems
TLDR
This article presents a model that encapsulates the minimal concepts necessary for a developer to determine exception flow for object-oriented languages that define exceptions as objects, and describes Jex, a static analysis tool developed to provide exception-flow information for Java systems based on this model.
Exception Handling: A Field Study in Java and .NET
TLDR
To the knowledge, this is the most comprehensive study done on exception handling to date, providing a quantitative measure useful for guiding the development of new error handling mechanisms.
EJFlow: taming exceptional control flows in aspect-oriented programming
TLDR
This paper presents an innovative aspect-oriented model for exception handling implementation that provides abstractions to explicitly describe global views of exceptional control flows and leverages existing pointcut languages to make the association of handlers with normal code more flexible.
Exception Handling Defects: An Empirical Study
TLDR
An exploratory study to determine whether using exception handling is relatively risky by analyzing the defect densities of exception handling code and the overall source code found that the density of defects that are closely related to exception handling constructs is relatively high compared to the overall defect density.
Extracting Error Handling to Aspects: A Cookbook
TLDR
This paper proposes a classification for error handling code based on the factors that are found out have more influence on its aspectization and presents a scenario catalog comprising combinations of these factors and analyzes how these scenarios positively or negatively affect the task of aspectizing exception handling.
Improving robustness of evolving exceptional behaviour in executable models
TLDR
The proposed exception handling model extends the aspect-oriented language constructs and the control-flow analysis of the Motorola WEAVR with the aim of promoting enhanced robustness and program modularization.
Handling contract violations in Java Card using explict exception channels
TLDR
This paper claims that problem of handling contract violation in Java Card applications can be addressed by implementing an innovative exception handling model which provides abstractions to explicitly describe global views of exceptional control flows.
...
1
2
3
4
...