DOM guide: Error handling

From COLLADA Public Wiki
Revision as of 04:49, 27 March 2007 by Alorino (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The COLLADA DOM provides an interface, daeErrorHandler, that handles the printing error messages.

Overview

The daeErrorHandler is an abstract singleton class. That is the functionality must implemented in a subclass but only one instance of any subclass will be active and available through the daeErrorHandler interface.

The COLLADA DOM provides a default daeErrorHandler implementation, daeStdErrPlugin. The daeStdErrPlugin class implements daeErrorHandler and routes the string error messages to C standard error stream.

Creating Your Own Error Handler

It may be desirable to route error messages for special handling or because the C standard error stream is unavailable, like in GUI programs. You can create your own error handling code by implementing a class that inherits from daeErrorHandler.

The daeErrorHandler interface declares two functions that need to be implemented to handle messages:

handleError( daeString );
handleWarning( daeString );

Implement these functions to parse or route the messages as you see fit. An example would be to create a pop-up window with the error message.

After implementing your error handling class you must pass an object of your class to the daeErrorHandler class to be used for error handling. The daeErrorHandler::setErrorHandler method is used to specify a specific error handler to be used.

DAE *daeObject = new DAE();
myErrorHandlerClass *myEH = new myErrorHandlerClass();
daeErrorHandler::setErrorHandler( myEH );
daeObject->load( myFileToLoad );
...
delete daeObject;
delete myEH;

Note that the daeErrorHandler does not destroy or free up any memory used by custom error handlers. You are responsible to destroy the error handler yourself.