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


Выявление причин ошибок

Обновлен: Ноябрь 2007

Этот раздел применим к:

Выпуск

Visual Basic

C#

C++

Web Developer

Экспресс-выпуск

Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Standard

Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Pro и Team

Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Обозначения:

Тема применяется

Применяется

Тема не применяется

Неприменимо

Тема применяется, но команда по умолчанию сокрыта

Команда или команды скрытые по умолчанию.

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

myErr = myGraphRoutine(a, b);

/* Code to handle errors and
   reset myErr if successful */

ASSERT(!myErr); -- MFC version
_ASSERT(!myErr); -- CRT version

Если код, обрабатывающий ошибку, работает правильно, ошибка будет обработана и myErr сбросится в ноль, не доходя до утверждения. Если myErr будет с другим значением, сработает утверждение, программа остановится и появится Диалоговое окно "Сбой проверочного утверждения".

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

myErr = myGraphRoutine(a, b);

/* No Code to handle errors */

ASSERT(!myErr); // Don't do this!
_ASSERT(!myErr); // Don't do this, either!

Этот код основан на операторе утверждения для обработки условия ошибки. В результате любой код ошибки, возвращенный myGraphRoutine, не будет обработан в окончательном выпуске программы.

См. также

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

Проверка результатов

Отслеживание логических ошибок

Утверждения