Исключения (класс CException)
Для реализации механизма исключений в MFC определен специальный класс CException, наследованный от базового класса CObject. Все исключения, определенные в MFC, наследуются от этого класса. Вот список классов, наследованных от CException и их краткое описание. Более полное описание классов, связанных с исключениями, вы можете найти в разделе “Исключения - класс CException” главы “Вспомогательные классы MFC”.
| Класс | Описание | ||
| CArchiveException | Исключение, вызванное ошибкой при использовании объекта класса CArchive. Класс CArchive применяется для сохранения и загрузки документа из файла на диске | ||
| CDaoException | Ошибка при работе с базами данных (при использовании классов DAO) | ||
| CDBException | Ошибка при работе с базами данных (при использовании ODBC) | ||
| CFileException | Ошибка, связанная с файловой системой | ||
| CMemoryException | Недостаточно оперативной памяти | ||
| CNotSupportedException | Попытка выполнить неопределенную операцию | ||
| COleDispatchException, COleException | Ошибка OLE | ||
| CResourceException | Не найден ресурс | ||
| CUserException | Ошибка приложения, вызванная действиями пользователя |
Обработчик исключения может выполнять различные действия в зависимости от того какое исключение и в каком контексте было вызвано. Для этого вы можете использовать методы и данные из объекта, переданного в обработчик исключения.
Методы классов MFC могут вызывать различные исключения. В следующей таблице кратко перечислены причины, по которым вызываются исключения разных типов:
|
Класс |
Исключение вызывается |
|
CMemoryException |
При распределении оперативной памяти |
|
CFileException |
При работе с файлами |
|
CArchiveException |
Во время записи или восстановления объектов (Archive/Serialization) |
|
CNotSupportedException |
При обращении к неизвестный метод, который не поддерживается данным классом |
|
CResourceException |
Ошибка при работе с ресурсами Windows |
|
CDaoException |
Ошибка при работе с базами данных, через средства DAO |
|
CDBException |
Ошибка при работе с базами данных, через средства ODBC |
|
COleException |
Ошибка при работе OLE |
|
COleDispatchException |
Ошибка при работе OLE |
|
CUserException |
При обработке этого исключения на экране отображается сообщение, а затем вызывается исключение CException |