An Object-oriented Exception Handling System for an Object-oriented Language

  • Christophe Dony
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 322)


We present an original exception handling system especially designed for object-oriented languages. making actual information hiding possible and taking into account specific issues of object-oriented languages. It allows association of handlers with expressions as well as with object classes, using a well defined semantics. It offers an object-oriented and extensible representation of exceptions, handlers and knowledge about exceptions. Handlers can specify both resumption and termination. There are no distinctions between system and user defined exceptions. With this system. fault tolerant programs and well specified encapsulations can be written, simple and powerful integration of new user-defined exceptions and secure as well as readable non local moves can be implemented.

In this paper, we examine object oriented specific issues related to exception handling. We discuss the exception handling mechanisms available in current object-oriented languages and explain why they do not provide he ability to define fault tolerant encapsulations. Our system description shows how the utilization of the object-oriented formalism solves, in an efficient and simple way, some well known problems related to exception handling such as: how to create exception hierarchies, how to signal fatal or continuable exceptions with the same primitive, how to pass arguments to handlers. and so on.

Key words and phrases

Exception handling Object-oriented programming Fault-tolerant encapsulations Resumption model Debugging environments 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Benoit, Caseau, Pherivong 86]
    C. Benoit. Y. Caseau, C. Pherivong: Knowledge Representation and Communication Mechanisms in Lore. Proc. of ECAI’86, Brighton, July 1986.Google Scholar
  2. [Beny 85]
    D.M. Berry, S. Yemini: A Modular Verifiable Exception-Handling Mechanism. ACM Transaction on Programming Languages and Systems, Vol. 7, No. 2, pp. 213–243, April 1985.Google Scholar
  3. [Bidoit 85]
    M. Bidoit et al.: Exception Handling: Formal Specification and Systematic Program Construction I.E.E.E. Transactions on Software Engineering, Vol. SE-11. Number 3, March 1985, pp.242–252.CrossRefGoogle Scholar
  4. [Bobrow 83]
    D.G. Bobrow, M. Stefik: The Loops Manual. Xerox Parc, 1983.Google Scholar
  5. [Bobrow 86]
    D.G. Bobrow & al: Merging Lisp and Object-Oriented Programming. Proc. of OOPSLA’86, Special issue of Sigplan Notices, Vol. 21, No. 11, pp. 17–29, November 1986.Google Scholar
  6. [Borgida 85]
    A. Borgida: Language Features for Flexible Handling of Exceptions in Information Systems. ACM Transactions on Database Systems, Vol. 10, No. 4, pp. 565–603, December 1985.CrossRefGoogle Scholar
  7. [Borgida 86]
    A. Borgida: Exceptions in Object-Oriented Languages. ACM Sigplan Notices, Vol. 21, No. 10, pp. 107–119, October 1986.CrossRefGoogle Scholar
  8. [Caseau 87]
    Y. Caseau: Etude et Réalisation d’un langage objet: LORE. Thèse de l’université Paris-Sud, Orsay, France, Novembre 1987.Google Scholar
  9. [Christian 82]
    F. Christian: Exception Handling and Software Fault Tolerance. IEEE Transactions on Computers, Vol. C-31. No. 6, pp. 531–540, June 1982.CrossRefGoogle Scholar
  10. [Cointe 84]
    P. Cointe Implémentation et interprétation des langages objets Applications aux langapes Formes, Objvlisp et Smalltalk. Thèse d’état. Université Paris 6, LRCAM, France. Décembre 1984.Google Scholar
  11. [Dahl 70]
    O. Dahl, B. Myhrhaug. K. Nygaard: SIMULA-67 Common Base Language. SIMULA Information, S-22 Norwegian Computing Center, Oslo, Norway, October 1970.Google Scholar
  12. [Etherington 83]
    D. Etherington, R. Reiter: On inheritance hierarchies with exceptions. Proc. of AAAI-83, pp. 104–108. August 1983.Google Scholar
  13. [Goldberg, Robson 83]
    A. Goldberg, D. Robson: SMALLTALK 80, the language and its implementation. Addison Wesley 1983.Google Scholar
  14. [Goodenough 75]
    J.B. Goodenough: Exception Handling: Issues and a Proposed Notation. Communication of the ACM, Vol. 18, No. 12, pp. 683–696, December 1975.zbMATHCrossRefMathSciNetGoogle Scholar
  15. [Ichbiah 79]
    J. Ichbiah & al: Preliminary ADA Reference Manual. Rationale for the Design of the ADA Programming Language. Sigplan Notices Vol. 14, No. 6, June 1979.Google Scholar
  16. [Knudsen 87]
    J.L. Knudsen: Better Exception Handling in Block Structured Systems. IEEE Software, pp. 40–49, May 1987.Google Scholar
  17. [Lieberman 84]
    H. Lieberman: Step Toward Better Debugging Tools For Lisp. ACM. Conference Record of the 1984 ACM Symposium on LISP and Functional Programming.Google Scholar
  18. [Levin 77]
    R. Levin: Program structures for exceptinal condition handling. Ph.D. dissertation, Dept. Comput. Sci., Camegie-Mellon University Pittsburg, June 1977.Google Scholar
  19. [Nixon 83]
    B.A. Nixon: A Taxis Compiler. Tech. Report 33, Comp. Sci. Dept., Univ. of Toronto, April 83.Google Scholar
  20. [Liskov 79]
    B. Liskov, A. Snyder: Exception Handling in CLU. IEEE Transactions on Software Engineering, Vol. SE-5, No. 6, pp. 546–558, Nov 1979.CrossRefGoogle Scholar
  21. [Meyer 87]
    Reusability: The Case for Object-Oriented Design. IEEE Software, pp. 51–64, Mars 1987.Google Scholar
  22. [Mitchell 77]
    J.G. Mitchell, W. Maybury, R. Sweet: MESA Language Manual. Xerox Research Center, Palo Alto, Calif., Mars 1979.Google Scholar
  23. [Moon 83]
    D. Moon, D. Weinreb: LISP Machine Manual, Fourth Edition. MIT Artificial Intelligence Lab., Cambridge, Massachussets. (July 1981).Google Scholar
  24. [Pascoe 86]
    G.A. Pascoe: Encapsulators: A New Software Paradigm in Smalltalk-80. Proc. of OOPSLA’86, Special issue of Sigplan Notices, Vol. 21. No. 11, pp. 341–346. November 1986.Google Scholar
  25. [PL/I 78]
    Multics PL/I Reference Manual, Cedoc 68, Louveciennes, Septembre 1978.Google Scholar
  26. [Stroustrup 86]
    B. Stroustrup: The C++ Programming Language. AT&T Bell Laboratories, Murray Hill, New Jersay. Addison-Wesley, March 1986.Google Scholar
  27. [Testard-Vaillant 86]
    F.X. Testard-Vaillant: Exceptions and Interpreters. AIMSA’86, Varna. September 1986.Google Scholar
  28. [Wertz 83]
    H. Wertz: An Integrated, Interactive and Incremental Programming Environment for the Development of Complex Systems. in Integrated Interactive Computing Systems, pp. 235–250, ED P.Degano & E.Sandew all, North-Holland 1983.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Christophe Dony
    • 1
    • 2
  1. 1.Laboratoires de MarcoussisCGE Research CenterMarcoussisFrance
  2. 2.LITPUniversity of Paris VIParisFrance

Personalised recommendations