Zero-Overhead Exception Handling Using Metaprogramming

We present a novel approach to exception handling which is based on metaprogramming. Our mechanism does not require language support, imposes no run time overhead to error-free programs, and is easy to implement. Exception handlers are implemented as ordinary procedures. When an exception occurs, the corresponding handler is searched dynamically using the type of the exception as a search criterion. Our implementation was done in the Oberon System but it could be ported to most other systems that support metaprogramming. An implementation for the PowerMac exisits and a porting project for Native Oberon is made at the ETH Zurich.
This project was a joint effort with H. Mössenböck und P. Pirklbauer. See the paper at SOFSEM'97.