Skip to main content

A systematic approach for structuring exception handling in robust component-based software


Component-based development (CBD) is recognized today as the standard paradigm for structuring large software systems. However, the most popular component models and component-based development processes provide little guidance on how to systematically incorporate exception handling into component-based systems. The problem of how to employ language-level exception handling mechanisms to introduce redundancy in componentbased systems is recognized by CBD practitioners as very difficult and often not adequately solved. As a consequence, the implementation of the redundant exceptional behaviour causes a negative impact, instead of a positive one, on system and maintainability. In this paper, we propose an approach for the construction of dependable component-based systems that integrates two complementary strategies: (i) a global exception handling strategy for inter-component composition and (ii) a local exception handling strategy for dealing with errors in reusable components. A case study illustrates the application of our approach to a real software system.


  1. [1]

    T. Anderson and P A. Lee. Fault Tolerance: Principles and Practice. Springer-Verlag, Wine, Austria, 2nd Edition, 1990.

    MATH  Google Scholar 

  2. [2]

    P. H. S. Brito, F. C. Filho and C. M. F. Rubira. A method for modeling exceptions in component-based development (in portuguese). In Proc. IV Brazilian Workshop on Component-Based Development (WDBC’2004), pp. 29–34, João Pessoa, PB, Brazil, Sep. 2004.

  3. [3]

    F. Castor Filho, P. A. de C. Guerra and C. M. F. Rubira. An Architectural-level Exception Handling System for Component-based Applications. In: Proc. First Latin-American Symposium on Dependable Computing, LNCS 2847, pp. 321-340, Springer-Verlag, 2003.

  4. [4]

    F. Castor Filho and C. M. F. Rubira. Implementing Coordinated Error Recovery for Distributed Object-Oriented Systems in AspectJ. Journal of Universal Computer Science, 10(7):843–858, Jul. 2004.

    Google Scholar 

  5. [5]

    F. Castor Filho, P. H. S. Brito, and C. M. F. Rubira. A Framework for Analyzing Exception Flow in Software Architectures. Submitted to IV ICSE Workshop on Architecting Dependable Systems (WADS’2005).

  6. [6]

    J. Cheesman and J. Daniels. UML Components: A Simple Process for Specifying Component-Based Software. Addison-Wesley, Reading, MA., USA, Oct. 2000.

    Google Scholar 

  7. [7]

    J. E. Cook and J. A. Dage. Highly reliable upgrading of components. In Proc. 21st International Conference on Software Engineering (ICSE’1999), pp. 203–212, Los Angeles, CA, ACM Press, May 1999.

    Chapter  Google Scholar 

  8. [8]

    F. Cristian. Exception Handling. In: T. Anderson (Ed.) Dependability of Resilient Computers. BSP Professional Books, UK, pp. 68–97, 1989.

    Google Scholar 

  9. [9]

    G. Doshi. Best practices for exception handling. ONJava Website. November 2003. http:// exceptions.html

  10. [10]

    D. D’Souza and A. C. Wills. Objects, Components and Frameworks with UML: The Catalysis Approach. Addison-Wesley, 2nd edition, 1999.

  11. [11]

    T. Elrad, R. E. Filman and A. Bader. Aspect-oriented programming. Communications of the ACM, 44(10):28–32, 2001.

    Google Scholar 

  12. [12]

    E. Gamma, R. Helm, R. Johnson and J. Vlissides. Design Patterns: Elements of Reusable Software Systems. Addison-Wesley, 1995.

  13. [13]

    D. Garlan, R. Allen and J. Ockerbloom. Architectural Mismatch: Why Reuse Is So Hard. IEEE Software. 12(6):17–26, 1995.

    Article  Google Scholar 

  14. [14]

    D. Garlan, R. T. Monroe and D. Wile. Acme: Architectural Description of Component-Based Systems. In: G. T. Leavens and M. Sitamaran (Eds.) Foundations of Component Based Systems, chapter 3, pp. 47–67. Cambridge University Press, Cambridge, UK. 2000.

    Google Scholar 

  15. [15]

    P. A. de C. Guerra, F. Castor Filho V. A. Pagano and C. M. F. Rubira. Structuring exception handling for dependable component-based software systems. In Proc. 30th Euromicro Conference, Rennes, France, IEEE Computer Society Press. Sep. 2004.

  16. [16]

    P. A. de C. Guerra, C. M. F. Rubira and R. de Lemos. A Fault-Tolerant Software Architecture for Component-Based Software Systems. In Architecting Dependable Systems. LNCS 2677. Springer-Verlag. 2003.

  17. [17]

    P. A. de C. Guerra. An Architectural Approach for Fault Tolerance in Component-Based Software Systems (in portuguese). PhD thesis, Universidade Estadual de Campinas, 2004.

  18. [18]

    V. Issarny and J. P. Banatre. Architecture-Based Exception Handling. In Proc. 34th Annual Hawaii International Conference on System Sciences (HICSS’34). IEEE Computer Society Press, 2001.

  19. [19]

    A. Kalakech et al. Benchmarcing operating system dependability: Windows 2000 as a case study. In Proc. 10th IEEE Pacific Rim International Symposium on Dependable Computing (PRDC’2004), pp. 261–270, Papeete, Tahiti, IEEE Computer Society Press, Mar. 2004.

    Chapter  Google Scholar 

  20. [20]

    M. D. McIlroy. Mass-Produced Software Components. In P. Naur and B. Randell (Eds) Software Engineering. Petrocelli/Charter, Brussels, Belgium, pp. 88–98. 1976.

    Google Scholar 

  21. [21]

    N. Medvidovic and R. N. Taylor. A framework for classifying and comparing architecture description languages. In Proc. 6th Joint ACM/Sigsoft Symposium on Foundations of Software Engineering and European Software Engineering Conference (FSE/ESEC’97), Sep. 1997.

  22. [22]

    B. Meyer. Object-Oriented Software Construction. Prentice-Hall, New Jersey, 1988.

    Google Scholar 

  23. [23]

    B. Meyer. The grand challenge of trusted components. In Proc. 25th International Conference on Software Engineering, pp. 660-667. IEEE Computer Society Press, May 2003.

  24. [24]

    Microsoft Corporation. Microsoft .Net Information. Available at

  25. [25]

    Object Management Group. Unified Modeling Language: Superstructure, version 2.0. Jul. 2003.

  26. [26]

    V. A. Pagano. An architectural approach based on exception handling for the design of componentbased software systems (in portuguese). Master’s thesis, Universidade Estadual de Campinas, 2004.

  27. [27]

    M. Rakic and N. Medvidovic. Increasing the confidence in off-the-shelf components: A software connector-based approach. In Proc. 2001 Symposium on Software Reusability, pp. 11-18. ACM/SIGSOFT, May 2001.

  28. [28]

    D. Reimer and H. Srinivasan. Analyzing exception usage in large java applications. In Proc. ECOOP’2003 -Workshop on Exception Handling for Object-Oriented Systems, pp. 10-19, Darmstadt, Germany, Jul. 2003.

  29. [29]

    C. M. F. Rubira, R. de Lemos, G. Ferreira and F. Castor Filho. Exception handling in the development of dependable component-based systems. Software — Practice and Experience, 2005.

  30. [30]

    M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Morgan Kaufmann Publishers, 1996.

  31. [31]

    S. Shenoy. Best practices in EJB exception handling. In IBM developerWorks website. Available at http:/ / 2002.

  32. [32]

    J. Siedersleben. Errors and exceptions — rights and responsibilities. In Proc. ECOOP’2003 -Workshop on Exception Handling for Object-Oriented Systems, pp. 2-9, Darmstadt, Germany, Jul. 2003.

  33. [33]

    M. Silva Jr., P. A. de C. Guerra and C. M. F. Rubira. A Java Component Model for Evolving Software Systems. In Proc. 18th IEEE International Symposium on Automated Software Engineering, pp. 327-330, Oct. 2003.

  34. [34]

    Sun Microsystems. Enterprise javabeans specification v2.1 — proposed final draft, 2002. Available at

  35. [35]

    Sun Microsystem. Java 2 Platform, Enterprise Edition (J2EE). Available at index.jsp

  36. [36]

    C. Szyperski. Component Software: Beyond Object-Oriented Programming. ACM Press and Addison-Wesley, New York, NY, second edition, November 2002.

    Google Scholar 

  37. [37]

    R. T. Tomita, F. Castor Filho, P. A. de C. Guerra and C. M. F. Rubira. Bellatrix: An environment with architectural support for component-based development (in portuguese). In Proc. IV Brazilian Workshop on Component-Based Development (WDBC’2004), pp. 43-48, João Pessoa, PB, Brazil, Sep. 2004.

  38. [38]

    G. Veccellio and W. M. Thomas. Issues in the assurance of component-based software. In Proc. 2000 International Workshop on Component-Based Software, Carnegie Mellon Software Engineering Institute, 2000.

  39. [39]

    J. Xu, B. Randell, A. Romanovsky, C. Rubira, R. Stroud and Z. Wu. Fault Tolerance in Concurrent Object-Oriented Software through Coordinated Error Recovery. In Proc. IEEE 25th Int. Symp. on Fault-Tolerant Computing, pp. 499-508, Pasadena, 1995.

  40. [40]

    J. Xu, B. Randell, A. Romanovsky, R. J. Stroud, A. F. Zorzo, E. Canver and F. von Henke. Rigorous development of an embedded fault-tolerant system based on coordinated atomic actions. IEEE Transactions on Computers, 51(2):164–179, Feb. 2002.

    Article  Google Scholar 

Download references

Author information



Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 2.0 International License ( ), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Reprints and Permissions

About this article

Cite this article

Filho, F.C., Guerra, P.A.d.C., Pagano, V.A. et al. A systematic approach for structuring exception handling in robust component-based software. J Braz Comp Soc 10, 3–17 (2004).

Download citation

  • Issue Date:

  • DOI:


  • Exceptional behaviour
  • Fault-tolerant component
  • Software fault tolerance
  • Component-based
  • development