The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at CSimpleException Class.
This class is a base class for resource-critical MFC exceptions.
Syntax
class AFX_NOVTABLE CSimpleException : public CException
Members
Public Constructors
| Name | Description |
|---|---|
| CSimpleException::CSimpleException | The constructor. |
Public Methods
| Name | Description |
|---|---|
| CSimpleException::GetErrorMessage | Provides text about an error that has occurred. |
Remarks
CSimpleException is the base class for resource-critical MFC exceptions and handles the ownership and initialization of an error message. The following classes use CSimpleException as their base class:
| CMemoryException Class | Out-of-memory exception |
| CNotSupportedException Class | Requests for an unsupported operation |
| CResourceException Class | Windows resource not found or not creatable |
| CUserException Class | Exception that indicates a resource could not be found |
| CInvalidArgException Class | Exception that indicates an invalid argument |
Because CSimpleException is an abstract base class, you cannot declare a CSimpleException object directly. Instead, you must declare derived objects such as those in the previous table. If you are declaring your own derived class, use the previous classes as a model.
For more information, see the CException Class topic and Exception Handling (MFC).
Inheritance Hierarchy
CSimpleException
Requirements
Header: afx.h
CSimpleException::CSimpleException
The constructor.
CSimpleException();
explicit CSimpleException(BOOL bAutoDelete);
```
### Parameters
`bAutoDelete`
Specify **TRUE** if the memory for the `CSimpleException` object has been allocated on the heap. This will cause the `CSimpleException` object to be deleted when the **Delete** member function is called to delete the exception. Specify **FALSE** if the `CSimpleException` object is on the stack or is a global object. In this case, the `CSimpleException` object will not be deleted when the **Delete** member function is called.
### Remarks
You would normally never need to call this constructor directly. A function that throws an exception should create an instance of a `CException`-derived class and call its constructor, or it should use one of the MFC throw functions, such as [AfxThrowFileException]--brokenlink--(../Topic/not%20found.md#afxthrowfileexception), to throw a predefined type.
## <a name="csimpleexception__geterrormessage"></a> CSimpleException::GetErrorMessage
Call this member function to provide text about an error that has occurred.
virtual BOOL GetErrorMessage( LPTSTR lpszError, UINT nMaxError, PUNIT pnHelpContext = NULL);
### Parameters
`lpszError`
A pointer to a buffer that will receive an error message.
`nMaxError`
The maximum number of characters the buffer can hold, including the **NULL** terminator.
`pnHelpContext`
The address of a **UINT** that will receive the help context ID. If **NULL**, no ID will be returned.
### Return Value
Nonzero if the function is successful; otherwise 0 if no error message text is available.
### Remarks
For more information, see [CException::GetErrorMessage](../Topic/CFileException%20Class.md#cfileexception__geterrormessage).
## See Also
[Hierarchy Chart](../Topic/Hierarchy%20Chart.md)
[CException Class](../Topic/CException%20Class.md)
[Exception Handling](../Topic/Exception%20Handling%20in%20MFC.md)