POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
ACM Computing Surveys (CSUR)
Exception handling: issues and a proposed notation
Communications of the ACM
A Theory of Objects
The Java Language Specification
The Java Language Specification
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
New exception interfaces for Java-like languages
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
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 programming 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 addition of new exceptions in a development step, the first proposal uses rescue handlers and the second one employs the forwarding technique.