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

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

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

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

Для примеров и более подробные сведения, обратитесь к статье исключения в Руководстве Visual C++ программист.

Исключение макросы

ПОПРОБУЙТЕ Задает блок кода для обработки исключений.
УЛОВ Задает блок кода для отлова исключения из предыдущего блока TRY.
CATCH_ALL Задает блок кода для перехвата всех исключений из предыдущего блока TRY.
AND_CATCH Задает блок кода для ловли типы дополнительных исключений из предыдущего блока TRY.
AND_CATCH_ALL Задает блок кода для перехвата всех остальных дополнительных исключений в блоке TRY предыдущего.
END_CATCH Заканчивает последний блок кода поймать или AND_CATCH.
END_CATCH_ALL Заканчивает последний блок кода CATCH_ALL.
БРОСАТЬ Выдает указанное исключение.
THROW_LAST В настоящее время обрабатываемое исключение генерируется следующий внешний обработчик.

Исключений функции

AfxThrowArchiveException Выдает исключение Архив.
AfxThrowFileException Исключение файла.
AfxThrowMemoryException Создает исключение памяти.
AfxThrowNotSupportedException Создает исключение не поддерживается.
AfxThrowResourceException Создает исключение Windows ресурс не найден.
AfxThrowUserException Выдает исключение в инициированные пользователем программы действий.

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

OLE исключение действует

AfxThrowOleDispatchException Выдает исключение внутри функции автоматизации OLE.
AfxThrowOleException Выдает исключение OLE.

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

Исключение функции DAO

AfxThrowDAOException Выдает CDaoException из вашего собственного кода.
AfxThrowDBException Выдает CDBException из вашего собственного кода.

MFC предоставляет следующие функции завершения:

Прекращение функций

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

См. также CException

Index