Abstract
Interface exceptions (explicitly declared exceptions that a method can propagate outside) are an inherent part of the interface describing the behaviour of a particular class of objects. Evolution of system behaviour is thus necessarily accompanied by and reflected in the evolution of interface exceptions. While the evolution of normal system behaviour is adequately supported by various language mechanisms, such as subtyping and inheritance, few contemporary object-oriented program- ming languages offer support for the evolution of interface exceptions. Some languages allow interface exceptions to be specialised and deleted while subtyping, but none of them provides adequate support for adding exceptions. In this paper we propose two complementary solutions to dealing with additional exceptions introduced during system evolution. To solve the problem of non-conforming interfaces resulting from the ad- dition of new exceptions in a development step, the first proposal uses rescue handlers and the second one employs the forwarding technique.
Acknowledgements
We would like to thank Christophe Dony, Ricardo Jiménez-Peris, J∅rgen Lindskov Knudsen, and Anand Tripathi for valuable comments and constructive criticism. Anna Mikhailova’s research is supported by the European IST project MATISSE and Alexander Romanovsky’s research by the European IST DSoS project.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
M. Abadi and L. Cardelli. A Theory of Objects. Springer-Verlag, 1996.
L. Cardelli, J. Donahue, L. Glassman, M. Jordan, B. Kalsow, and G. Nelson. Modula-3 language definition. Technical Report 52, Digital Equipment Corporation, Systems Research Center, 1989.
W. R. Cook, W. L. Hill, and P. S. Canning. Inheritance is not subtyping. In Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 125–135, San Francisco, CA, Jan. 1990.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable ObjectOriented Software. Addison-Wesley, 1995.
J. B. Goodenough. Exception handling: Issues and a proposed notation. Communications of the ACM, 18(12):683–696, Dec. 1975.
J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Sun Microsystems, Mountain View, 1996.
V. Issarny. An exception handling mechanism for parallel object-oriented programming: towards the design of reusable, and robust distributed software. Journal of Object-Oriented Programming,6(6):29–40, 1993.
R. Miller and A. Tripathi. Issues with exception handling in object-oriented systems. In M. Aksit and S. Matsuoka, editors, ECOOP ’97 — Object-Oriented Programming 11th European Conference, Jyväskylä, Finland, volume 1241 of Lecture Notes in Computer Science, pages 85–103. Springer-Verlag, New York, NY, June 1997.
A. T aivalsaari. On the notion of inheritance. Comp. Surveys, 28(3):438–479, September 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Mikhailova, A., Romanovsky, A. (2001). Supporting Evolution of Interface Exceptions. In: Romanovsky, A., Dony, C., Knudsen, J.L., Tripathi, A. (eds) Advances in Exception Handling Techniques. Lecture Notes in Computer Science, vol 2022. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45407-1_6
Download citation
DOI: https://doi.org/10.1007/3-540-45407-1_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41952-5
Online ISBN: 978-3-540-45407-6
eBook Packages: Springer Book Archive