skip to main content
10.1145/1181775.1181794acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Exceptions and aspects: the devil is in the details

Authors Info & Claims
Published:05 November 2006Publication History

ABSTRACT

It is usually assumed that the implementation of exception handling can be better modularized by the use of aspect-oriented programming (AOP). However, the trade-offs involved in using AOP with this goal are not well-understood. This paper presents an in-depth study of the adequacy of the AspectJ language for modularizing exception handling code. The study consisted in refactoring existing applications so that the code responsible for implementing heterogeneous error handling strategies was moved to separate aspects. We have performed quantitative assessments of four systems - three object-oriented and one aspect-oriented - based on four quality attributes, namely separation of concerns, coupling, cohesion, and conciseness. Our investigation also included a multi-perspective analysis of the refactored systems, including (i) the reusability of the aspectized error handling code, (ii) the beneficial and harmful aspectization scenarios, and (iii) the scalability of AOP to aspectize exception handling in the presence of other crosscutting concerns.

References

  1. T. Anderson and P. A. Lee. Fault Tolerance: Principles and Practice. Springer, 2nd edition, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. P. Avgustinov, A. S. Christensen, L. J. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: an extensible aspectj compiler. In Proceedings of AOSD'05, pages 87--98, March 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. N. Cacho, C. Sant'Anna, E. Figueiredo, A. Garcia, and T. B. C. Lucena. Composing design patterns: A scalability study of aspect-oriented programming. In Proceedings of AOSD'06, March 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. F. Castor Filho, A. Garcia, and C. M. F. Rubira. A quantitative study on the aspectization of exception handling. In Proceedings of ECOOP'2005 Workshop on Exception Handling in OO Systems, 2005.Google ScholarGoogle Scholar
  5. S. Chidamber and C. Kemerer. A metrics suite for oo design. IEEE Trans. Sw. Eng., 20(6):476--493, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. F. Cristian. A recovery mechanism for modular software. In Proceedings of the 4th ICSE, pages 42--51, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. F. Cristian. Exception handling. In Dependability of Resilient Computers. BSP Professional Books, 1989.Google ScholarGoogle Scholar
  8. C. Fetzer, K. Högstedt, and P. Felber. Automatic detection and masking of nonatomic exception handling. IEEE Trans. Sw. Eng., 30(8):547--560, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Fradet and M. Südolt. An aspect language for robust programming. In Proceedings of the ECOOP'99 Workshop on AOP, June 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Garcia, C. Rubira, A. Romanovsky, and J. Xu. A comparative study of exception handling mechanisms for building dependable object-oriented software. Journal of Systems and Software, 59(2):197--222, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Garcia, C. Sant'Anna, E. Figueiredo, U. Kulesza, C. J. P. de Lucena, and A. von Staa. Modularizing design patterns with aspects: A quantitative study. Trans. AOSD, 1:36--74, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. I. Godil and H. Jacobsen. Horizontal decomposition of prevlayer. In Proceedings of CASCON 2005, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. B. Goodenough. Exception handling: Issues and a proposed notation. Communications of the ACM, 18(12):683--696, December 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. P. Greenwood and L. Blair. A framework for policy-driven auto-adaptive systems using dynamic framed aspects. Trans. AOSD, 2006. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Hannemann and G. Kiczales. Design pattern implementation in java and AspectJ. In Proceedings of OOPSLA'02, pages 161--173, November 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. Harbulot and J. R. Gurd. A join point for loops in aspectj. In Proceedings of AOSD'06, pages 63--74, Bonn, Germany, March 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of ECOOP'97, pages 220--242, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  18. J. Kienzle and R. Guerraoui. AOP: Does it make sense? the case of concurrency and failures. In Proceedings of ECOOP'02, pages 37--61, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Laddad. AspectJ in Action. Manning, 2003.Google ScholarGoogle Scholar
  20. M. Lippert and C. V. Lopes. A study on exception detection and handling using aspect-oriented programming. In Proceedings of ICSE'2000, pages 418--427, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. P. Monteiro and J. M. Fernandes. Towards a catalog of aspect-oriented refactorings. In Proceedings of AOSD'05, pages 111--122, March 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. S. Soares, E. Laureano, and P. Borba. Implementing distribution and persistence aspects with AspectJ. In Proceedings of OOPSLA'02, pages 174--190, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M. van Dooren and E. Steegmans. Combining the robustness of checked exceptions with the flexibility of unchecked exceptions using anchored exception declarations. In Proceedings of OOPSLA'05, pages 455--471, October 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. W. Weimer and G. Necula. Finding and preventing run-time error handling mistakes. In Proceedings of OOPSLA'04, pages 419--433, October 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Exceptions and aspects: the devil is in the details

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        SIGSOFT '06/FSE-14: Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
        November 2006
        298 pages
        ISBN:1595934685
        DOI:10.1145/1181775

        Copyright © 2006 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 5 November 2006

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate17of128submissions,13%

        Upcoming Conference

        FSE '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader