Nigel Horspool U. Victoria, Canada nigelh@csr.uvic.ca Implementing Java Exceptions Efficiently Throwing and catching an exception in Java is remarkably expensive. Implementers have apparently taken the view that exceptions are rare events and that efficiency is unimportant. We take the view that exceptions should be a standard programming pattern and that efficiency does matter. We first examine where all the time is taken. Then, based on these experimental observations, we recommend strategies for making significant reductions in execution time. Our recommendations do not require any changes in the class file format. We further propose modest changes to the Java language and to the class library that would ease the burden on the implementer of the exception handling mechanism. Acknowledgement: Mike Zastre has contributed to this work.