Исключения (класс 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 |