ZOOM Exceptions: Goals and Intentions



Exception Mechanism: Goals and Intentions


The Zoom exception mechanism is intended to be the tools used by ZOOM modules to handle exceptions in a useful way and provide the user with interfaces to control how to react to problems. It may also fill the need for a mechanism for the user to hook into to define and ZMthrow exceptions specific to the user code.

ZOOM needed to implement the mechanism early, to avoid delivering packages which would have to be re-instrumented when the exception mechanism was is finally adopted.

This is not a "signal handler" mechanism, which could be used to establish behavior for segment violations, arithmetic exceptions, and so forth. It would be nice to have this but C++ does not provide generic support for those activities. A later possibility will be to provide this support for POSIX-compliant operating systems, and coordinate it with the exception mechanism.


The conception is that for a large HEP code, many users will contribute segments, which fit into some overall framework. The framework writer(s) may be expected to pay more attention to specialized software details, and set things up to free other users to focus on expressing their physics and algorithms.

We need to be able to cope with the following realities:


In light of those assumptions, the mechanism must meet the following goals: Finally, since the exception mechanism needs an associated logging mechanism, we provide that mechanism to the user for non-exception use as well.

ZOOM Exceptions - ZOOM Home Page - Fermilab at Work - Fermilab Home

Mark Fischler
Philippe Canal
Last modified: August 13, 1997