SLAC CPE Software Engineering Group
Stanford Linear Accelerator Center
Exception Handling

Exception and Message Logging Facilities

SLAC Detailed
SLAC Computing
Software Home
Software Detailed

Err javadoc Except javadoc

This page describes two middleware systems, Except, and Err, developed by the Software Group for language independent exception and message handling and logging. The systems described help a programmer to define, throw, and log (to cmlog), error and exception messages. At the time of writing, it is complete and documented for Java programmers, but it works through CORBA and is also useful to C++ programmers.

Contents:  Outline, User Guides, Reference Documents
See also:   Aida

Ron's PowerPoint Presentation.


"Err" is a small API for logging text and exception objects. It relays exception object text to a cmlog listener (or other logging API) via ErrClient. ErrClient is a CORBA Event Service interface daemon which accepts the exceptions logged by methods of Err, through the CORBA event service, and forwards them to your log server. We use cmlog, whose logging API is cmlogServer. "Except" is a collection of general purpose exceptions, defined in CORBA IDL. It allows a programmer to define language independent exception classes. Used together, Err and Except form a small neat system for defining and logging exception and error messages in a multi-language distributed environment, especially one where good logging is essential, such as in a control system.

Users Guides

These are guides for programmers who are using the error handling systems Err and Except:

Document Purpose
Programmer's Guide to Exception Handling
This includes how to define new ESD exceptions as well as how to catch and log exceptions.
View Error Messages with CMLOG. Help on configuring a cmlog browser to view messages.
System Administration Guide   How to start the Event Service, and other Exception Logging processes on Unix.

Programmers Guide

This section describes some aspects of programming the error handling systems Err and Except themselves.

Source Location Purpose
$CD_SOFT/ref/package/err/ The self contained source code of the Err API, and ErrClient, plus scripts, that may be given as a package to a 3rd party.
$CD_SOFT/ref/app/err/ Scripts for managing the ErrClient in the SLAC accelerator control complex.
$CD_SOFT/ref/ext/err/ Scripts for releasing software in $CD_SOFT/ref/package/err/ to the SLAC accelerator control system complex.

Reference Documents

ESD Exceptions: Requirements and Design
Design Review Minutes - ESD Exceptions.

[SLAC CPE Software Engineering Group][ SLAC Home Page]

Author: Ron MacKenzie, Greg White
Modified by: Greg White, 05-Apr-2005. Added javadoc links and cleanup.