SoError is the base class for all error classes, which provide error handling for applications. There are
two facets to errors: posting and handling. An error is posted when some bad condition occurs. Posting is
done primarily by the Inventor library itself, but extenders can post their own errors. Posting an error
creates an instance of the appropriate error class (or subclass) and then passes it to the active error
handler. The default handler just prints an appropriate message to stderr. Applications can override this
behavior by supplying a different handler (by specifying a callback function).
Each subclass of SoError supports the setHandlerCallback() method, which is used to set the callback
function to handle errors. The callback function for a specfic error class is always used in preference
to that of any base classes when handling errors. The error instance passed to a callback is deleted
immediately after the callback is called; an application that wishes to save information from the
instance has to copy it out first.
Each error class contains a run-time class type id (SoType) that can be used to determine the type of an
instance. The base class defines a character string that represents a detailed error message that is
printed by the default handler. All handlers are called by the SoError::handleError() method. When
debugging, you can set a breakpoint on this method to stop right before an error is handled.