Assessing the Impact of Aspects on Exception Flows: An Exploratory Study

  • Authors:
  • Roberta Coelho;Awais Rashid;Alessandro Garcia;Fabiano Ferrari;Nélio Cacho;Uirá Kulesza;Arndt Staa;Carlos Lucena

  • Affiliations:
  • Computer Science Department, Pontifical Catholic University of Rio de Janeiro, Brazil and Computing Department, Lancaster University, Lancaster, UK;Computing Department, Lancaster University, Lancaster, UK;Computing Department, Lancaster University, Lancaster, UK;Computing Department, Lancaster University, Lancaster, UK;Computing Department, Lancaster University, Lancaster, UK;CITI/DI/FCT, New University of Lisbon, Portugal and Recife Center for Advanced Studies and Systems, Brazil;Computer Science Department, Pontifical Catholic University of Rio de Janeiro, Brazil;Computer Science Department, Pontifical Catholic University of Rio de Janeiro, Brazil

  • Venue:
  • ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Exception handling mechanisms are intended to support the development of robust software. However, the implementation of such mechanisms with aspect-oriented (AO) programming might lead to error-prone scenarios. As aspects extend or replace existing functionality at specific join points in the code execution, aspects' behavior may bring new exceptions, which can flow through the program execution in unexpected ways. This paper presents a systematic study that assesses the error proneness of AOP mechanisms on exception flows of evolving programs. The analysis was based on the object-oriented and the aspect-oriented versions of three medium-sized systems from different application domains. Our 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. The causes of such problems are characterized and presented as a catalogue of bug patterns.