
CException — базовый класс для всех исключений в библиотеки Microsoft Foundation Class. Ниже перечислены производные классы и их описания:
| CMemoryException | Исключения из памяти |
| CNotSupportedException | Запрос на недопустимую операцию |
| CArchiveException | Архив конкретного исключения |
| CFileException | Исключение файлов конкретного |
| CResourceException | Ресурс не найден или не создаваемым Windows |
| COleException | OLE исключение |
| CDBException | База данных exceptio&nnbsp; (то есть, условия исключения, возникающие для MFC базы данных классов на основе Open Database Connectivity) |
| COleDispatchException | OLE направить исключение (автоматизации) |
| CUserException | Исключение, которое указывает, что ресурс не найден |
| CDaoException | Исключение объектов доступа к данным (то есть, условия исключения, возникающие для классов DAO) |
| CInternetException | Интернет исключение (то есть, условия исключения, возникающие для классов Интернет). |
Эти исключения предназначены для использования с БРОСИТЬ, THROW_LAST, попробуйте, поймать, AND_CATCHи END_CATCH макросов. Для получения дополнительных сведений об исключениях, см. Обработка исключений, или обратитесь к статье исключения в Руководстве Visual C++ программист.
Чтобы поймать определенное исключение, используйте соответствующий производный класс. Чтобы перехватывать все типы исключений, использовать CException, а затем использовать CObject::IsKindOf для различения CException-производные классы. Обратите внимание, что CObject::IsKindOf работает только для классов, объявленные с макро- IMPLEMENT_DYNAMIC , с тем чтобы воспользоваться преимуществами проверки динамических типов. Любой CException-производный класс, который вы создаете следует использовать макрос IMPLEMENT_DYNAMIC , тоже.
Вы можете сообщить подробные сведения об исключениях для пользователей путем вызова GetErrorMessage или ReportError, две функции-члены, которые работают с любым из производных классов CException.
Исключение будет перехвачено один из макросов, CException объект автоматически удаляется; не удаляйте его сами. Если исключение будет перехвачено с помощью ключевого слова catch , он не удаляется автоматически. В статье исключений в Visual C++ программиста руководство для получения дополнительных сведений о том, когда для удаления объекта изъятие.
CException — абстрактный базовый класс. Нельзя создавать объекты CException ; необходимо создать объекты производных классов. Если вам нужно создать собственный тип CException , используйте один из производных классов, перечисленных выше как модель. Убедитесь, что ваш производный класс также использует IMPLEMENT_DYNAMIC.
# include lt;afx.h>
Члены класса |nbsp; Базовый класс | Иерархическая схема
Пример СЛЕЗОТОЧИВЫЙ образца MFC
См. также Обработка исключений