Поделиться через


Обработка исключений

Если программы, несколько анормалных вызываемых условия и ошибок «исключения» могут возникать. Они могут включать нехватка памяти, ошибки выделения ресурсов и сбоев поиска файлов.

Библиотеки Microsoft Foundation Class использует схему обработки исключений, которая была смоделирована тесно после одного Комитетом предложенного по стандартам ANSI C для C++. Обработчик исключений необходимо настроить до вызова функции, которая может столкнуться при возникновении нестандартной ситуации. Если функция обнаруживает анормальное состояние, она создает исключение и элемент управления передается обработчик исключений.

Несколько макросов, входящих в состав библиотеки Microsoft Foundation Class настраивают обработчиков исключений. Несколько других глобальных функций позволяют создавать специализированные исключения и для выполнения программы, соответственно. Эти макросы и глобальные функции можно разделить на следующие категории.

  • Макросы исключения структура, обработчик исключений.

  • исключения при порождении функции, создают исключения определенных типов.

  • Функции завершения, который вызывает завершение работы программы.

Дополнительные сведения и примеры см. в статье Исключения.

Макросы исключения

TRY

Указывает блок кода обработки исключений.

CATCH

Указывает блок кода для перехвата исключения из предыдущего блока TRY.

CATCH_ALL

Указывает блок кода для перехвата всех исключений из предыдущего блока TRY.

AND_CATCH

Указывает блок кода для перехвата дополнительных типов исключений из предыдущего блока TRY.

AND_CATCH_ALL

Указывает блок кода для перехвата все другие дополнительные типы исключений, предшествующий в блок TRY.

END_CATCH

Завершает последние CATCH или блок кода AND_CATCH.

END_CATCH_ALL

Завершает последний блок кода CATCH_ALL.

THROW

Создает конкретное исключение.

THROW_LAST

Создает в данный момент обработанного исключения следующему внешнему обработчику.

Исключения при порождении функции

AfxThrowArchiveException

Создает исключение архива.

AfxThrowFileException

Создает исключение файла.

AfxThrowMemoryException

Создает исключение памяти.

AfxThrowNotSupportedException

Выдает неподдерживаемое исключение.

AfxThrowResourceException

Создает исключение, ресурс-не- Windows.

AfxThrowUserException

Создает исключение в действии пользователем начатом программы.

MFC предоставляет 2 при порождении исключения функции специально для исключений OLE:

Функции исключения OLE

AfxThrowOleDispatchException

Создает исключение внутри функции ole-автоматизации.

AfxThrowOleException

Создает исключение OLE.

Для поддержки исключения баз данных классы базы данных предоставляют 2 классы исключений, CDBException и CDaoException и глобальной функции для поддержки типов исключений.

Функции исключения DAO

AfxThrowDAOException

Создает исключение CDaoException из собственного кода.

AfxThrowDBException

Создает исключение CDBException из собственного кода.

MFC предоставляет следующие возможности завершения.

Функции завершения

AfxAbort

Вызывается при завершении приложения, когда произошла неустранимая ошибка.

См. также

Ссылки

Класс CException

Основные понятия

Макросы и глобальные объекты MFC