A ServiceException object is created by the Framework or service
implementation to denote an exception condition in the service. A type code
is used to identify the exception type for future extendability. Service
implementations may also create subclasses of ServiceException. When
subclassing, the subclass should set the type to SUBCLASSED to
indicate that ServiceException has been subclassed.

This exception conforms to the general purpose exception chaining mechanism.