Abstract
Exceptions are frequently a controversial language feature with both language designers and programmers. Exceptions are controversial because they complicate language semantics—and thus program design, testing, and verification—and some programmers find them annoying or difficult to use properly. By examining two programming languages that have very different, even opposing, exception mechanisms, a set of exception principles is introduced that summarize the key semantic and social issues surrounding exceptions.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Sutcliffe, R.J. (ed.): Modula-2 (Base Language). Number 10514-1:1996 in ISO/IEC Modula-2 Standardization. ISO/IEC (1999)
Wirth, N.: Programming in Modula-2. Springer, Heidelberg (1982)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 3rd edn. Addison-Wesley Publishing Company, Reading (2005)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1988)
Meyer, B.: Disciplined exceptions. Technical Report TR-EI-13/EX, Interactive Software Engineering (1988)
Bezault, E., Howard, M., Kogtenkov, A., Meyer, B., Stapf, E.: Eiffel analysis, design and programming language. Technical Report ECMA-367, ECMA International (2005)
Leavens, G.T., Poll, E., Clifton, C., Cheon, Y., Ruby, C., Cok, D., Kiniry, J.: JML Reference Manual. Department of Computer Science, Iowa State University, 226 Atanasoff Hall. Draft revision 1.94 edn. (2004)
Leavens, G.T., Baker, A.L., Ruby, C.: JML: A Notation for Detailed Design. In: Behavioral Specifications of Business and Systems, pp. 175–188. Kluwer Academic Publishing, Dordrecht (1999), Available via: http://www.cs.iastate.edu/~leavens/JML.html
Hester, K.: What is JavaSignals? (1999), See: http://www.geeksville.com/~kevinh/projects/javasignals/
Meyer, B.: Eiffel the Language, 3rd edn. Prentice-Hall, Englewood Cliffs (2002)
Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1992)
Burdy, L., Cheon, Y., Cok, D., Ernst, M., Kiniry, J., Leavens, G.T., Leino, K., Poll, E.: An overview of JML tools and applications. International Journal on Software Tools for Technology Transfer (2005)
Jacobs, B., Poll, E.: A logic for the Java Modeling Language JML. In: Hussmann, H. (ed.) ETAPS 2001 and FASE 2001. LNCS, vol. 2029, pp. 284–299. Springer, Heidelberg (2001)
Kiniry, J.R., Cok, D.R.: ESC/Java2: Uniting ESC/Java and JML: Progress and issues in building and using ESC/Java2 and a report on a case study involving the use of ESC/Java2 to verify portions of an Internet voting tally system. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 108–128. Springer, Heidelberg (2005)
Jacobs, B., Poll, E.: Java program verification at Nijmegen: Developments and perspective. In: Futatsugi, K., Mizoguchi, F., Yonezaki, N. (eds.) ISSS 2003. LNCS, vol. 3233, pp. 134–153. Springer, Heidelberg (2004)
Eckel, B.: Does Java need checked exceptions? (2003), See: http://www.mindview.net/Etc/Discussions/CheckedExceptions particularly the ensuing feedback on this issue
Posted by Eric Gunnerson; original author unknown.: Why doesn’t C# require exception specifications (2000)
Microsoft Corporation: .NET framework general reference, Documentation version 1.1.0 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Kiniry, J.R. (2006). Exceptions in Java and Eiffel: Two Extremes in Exception Design and Application. In: Dony, C., Knudsen, J.L., Romanovsky, A., Tripathi, A. (eds) Advanced Topics in Exception Handling Techniques. Lecture Notes in Computer Science, vol 4119. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11818502_16
Download citation
DOI: https://doi.org/10.1007/11818502_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-37443-5
Online ISBN: 978-3-540-37445-9
eBook Packages: Computer ScienceComputer Science (R0)