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


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

В этой статье описывается механизм обработки исключений, доступные в MFC. 2 Два свойства:

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

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

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

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

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

Примечание

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

Этот раздел охватывает следующее:

  • Когда использовать исключения

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

  • Дальнейшее чтение об исключениях

Когда использовать исключения

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

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

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

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

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

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

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

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

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

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

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

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

Значение

Класс CMemoryException

Нехватки памяти

Класс CFileException

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

Класс CArchiveException

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

Класс CNotSupportedException

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

Класс CResourceException

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

Класс CDaoException

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

Класс CDBException

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

Класс COleException

Исключения OLE

Класс COleDispatchException

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

Класс CUserException

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

Примечание

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

Дальнейшее чтение об исключениях

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

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

См. также

Ссылки

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

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

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