Error Class Reference

#include <error.h>

Class Description

Holds information about an error.

Typically heap allocated.

Objects of this class are usually created on the heap and used in exception handling in the following way:

try
{
MyFunction();
}
catch( Error *pError )
{
// report the error to the user, and delete the object.
pError->Report();
... do something here to handle the problem
}

In MyFunction somewhere you can write:

...
if ( pPointer == 0 )
throw new Error( "No object specified" );
...

You should use the MB_ERROR macro to throw Errors:

MB_ERROR( "No pointer specified in step %d", iStep );

See the macro MB_ERROR for more details.

Definition at line 46 of file error.h.

Public Types

enum  Code {
  codeOk, codeOutOfMemory, codeHardwareFailure, codeOutOfVideoMemory,
  codeUnspecified, codeUserSkip, codeUserIgnore, codeUserCancel,
  codeUnknown = 0xffffffff
}
 

Public Member Functions

 Error (const QString &sMessage, Code eCode=codeUnspecified, const char *pFunction=0, const char *pSourceFileName=0, unsigned int iLine=0)
 Constructor. More...
 
Error * Format (const QString &sMessage)
 Sets the message in the error. More...
 
enum Code Code (void) const
 Returns the error code associated with the error. More...
 
const QString & Message (void) const
 Returns the error message associated with the error. More...
 
void Report (const QString &sPre="") const
 Reports the error to the user in a message box and deletes the Error object. More...
 
void Discard (void) const
 Discards the error message and deletes the object (except s_cBadAlloc errors, which should never be deleted.) More...
 

Static Public Member Functions

static void ThrowBadAlloc (void)
 Throws a static bad alloc exception. (No memory allocation is required to report allocation problems.) More...
 

Public Attributes

enum mudbox::Error::Code m_eCode
 

Static Public Attributes

static Error s_cBadAlloc
 

Protected Attributes

QString m_sErrorMessage
 
bool m_bOnHeap
 
const char * m_pFunction
 
const char * m_pSource
 
unsigned int m_iLine
 

Member Enumeration Documentation

enum Code
Enumerator
codeOk 
codeOutOfMemory 
codeHardwareFailure 
codeOutOfVideoMemory 
codeUnspecified 
codeUserSkip 
codeUserIgnore 
codeUserCancel 
codeUnknown 

Definition at line 57 of file error.h.

Constructor & Destructor Documentation

Error ( const QString &  sMessage,
Code  eCode = codeUnspecified,
const char *  pFunction = 0,
const char *  pSourceFileName = 0,
unsigned int  iLine = 0 
)

Constructor.

How this is usually used:

throw new Error( "Some message" );
Parameters
[in]sMessageMessage that explains the error
[in]eCodeError code (optional)
[in]pFunctionName of the function where the error happens (optional)
[in]pSourceFileNameName of the source files where the error happens (optional)
[in]iLineLine number in the source file where the error happens (optional)

Member Function Documentation

Error* Format ( const QString &  sMessage)

Sets the message in the error.

Returns a pointer to itself.

enum Code Code ( void  ) const

Returns the error code associated with the error.

const QString& Message ( void  ) const

Returns the error message associated with the error.

void Report ( const QString &  sPre = "") const

Reports the error to the user in a message box and deletes the Error object.

Errors are written into the log file, and also reported in a message box that the user must dismiss. If you specify a pretext string, it will be displayed first. After reporting is complete, the Error object will be deleted in this call (except s_cBadAlloc errors, which don't reside in deletable space.)

Parameters
[in]sPreOptional string describing the pretext of the error
void Discard ( void  ) const

Discards the error message and deletes the object (except s_cBadAlloc errors, which should never be deleted.)

static void ThrowBadAlloc ( void  )
inlinestatic

Throws a static bad alloc exception. (No memory allocation is required to report allocation problems.)

Definition at line 112 of file error.h.

112 { throw &s_cBadAlloc; };
static Error s_cBadAlloc
Definition: error.h:112

Member Data Documentation

QString m_sErrorMessage
protected

Definition at line 51 of file error.h.

bool m_bOnHeap
protected

Definition at line 52 of file error.h.

const char* m_pFunction
protected

Definition at line 53 of file error.h.

const char * m_pSource
protected

Definition at line 53 of file error.h.

unsigned int m_iLine
protected

Definition at line 54 of file error.h.

enum mudbox::Error::Code m_eCode
Error s_cBadAlloc
static

Definition at line 112 of file error.h.


The documentation for this class was generated from the following file: