Обработка ошибок в MFC

В данной статье описываются механизмы обработки ошибок, доступные в MFC.2 Механизма доступны.

  • Исключений C++, доступные в версии MFC 3,0 и более поздних версий

  • Макросы исключения MFC, доступный в версиях 1.0 и более поздней версии MFC

При написании нового приложения с использованием MFC, необходимо использовать механизм C++.Можно использовать механизм макрос-основанный если существующее приложение уже использует этот механизм интенсивно.

Можно легко преобразование существующего кода для использования исключений C++ макросов MFC вместо этого исключения.Преимущества преобразования код и правила для этого описаны в статье Исключения: Преобразование из макросов исключения MFC.

Если уже начинали приложение с помощью макросов MFC исключения, то можно продолжить использовать эти макросы в существующем коде при использовании исключений C++ в своем новом коде.Статья Исключения: изменения к макросам исключения в версии 3.0 предоставляет правила для этого.

ПримечаниеПримечание

Включить обработку исключений C++ в коде выберите включает исключения C++ на странице создания кода в папку C/C++ диалогового окна Страницы свойств (C++) проекта или использует параметр компилятора /GX.Значение по умолчанию – /GX, которое запрещает обработку исключений.

Данный раздел содержит следующие подразделы.

  • Использование исключений

  • Поддержка исключения MFC

  • Дополнительные сведения об исключениях

Использование исключений

3 Категории результатов могут возникнуть при вызове функции во время выполнения программы. нормальное выполнение, ошибочное выполнение или выполнение анормалное.Каждая категория описанна ниже.

  • Нормальное выполнение

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

  • Ошибочное выполнение

    Вызывающий код совершает определенная ошибка при передаче аргументов функции или вызывает функцию в неуместном контексте.Такая ситуация возникает ошибка, и она должна быть обнаружена проверочным утверждением во время разработки программ.(Дополнительные сведения о проверочных утверждений см. в разделе Утверждения).

  • Анормалное выполнение

    Анормалное выполнение включает ситуации, когда условия за пределами элемента управления программы, такие как низкая память или ошибки ввода-вывода, влияющих на результат функции.Анормалные ситуации должны быть обработаны, перехватывая и генерация исключений.

Использование исключений особенно подходящий для аварийного завершения.

Поддержка исключения MFC

, Используется ли исключения C++ непосредственно или использовать макрос исключения MFC, необходимо использовать Класс CException или объекты, унаследованные от CException, которые могут быть созданы средой выполнения или приложением.

В следующей таблице перечислены предопределенные исключения, доступные в MFC.

Класс исключения

Значение

Класс CMemoryException

Исчерпания памяти

Класс CFileException

Исключение файлов

Класс CArchiveException

Исключение архива или сериализации

Класс CNotSupportedException

Ответ для запроса для неподдержанной службы

Класс CResourceException

Исключение выделения ресурсов windows

Класс CDaoException

Исключения базы данных (классы DAO)

Класс CDBException

Исключения базы данных (классы ODBC)

Класс COleException

ЯВЛЯЕТСЯ исключения

Класс COleDispatchException

Исключения диспетчера (автоматизации)

Класс CUserException

Исключение, предупреждает пользователя с окном сообщения, а затем создает универсальный шаблон Класс CException

ПримечаниеПримечание

MFC поддерживает и исключений C++ и макросы исключения MFC.MFC не поддерживает напрямую обработчики исключений (SEH) структурированные Windows NT, как описано в Структурная обработка исключений.

Дополнительные сведения об исключениях

В следующих статьях объясняется использование библиотеки MFC обработка исключения:

В следующих статьях сравнивают макросы исключения MFC с ключевыми словами исключений C++ и объясняется, как можно использовать пользовательский код:

См. также

Ссылки

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

Другие ресурсы

Инструкции: Создайте мои собственные пользовательские классы исключений?