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


Утверждения MFC

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

Выпуск

Visual Basic

C#

F#

C++

Web Developer

Express

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

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

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

Pro, Premium и Ultimate

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

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

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

Для проверки утверждения MFC определяет макрос ASSERT. Так же для проверки внутреннего состояния объекта, производного от CObject, определяются MFC ASSERT_VALID и CObject::AssertValid.

MFC-макрос ASSERT останавливает выполнение программы и предупреждает пользователя, если аргумент (выражение) равно нулю или FALSE. Если выражение оценивается как ненулевое, выполнение продолжается.

Когда утверждение становится ложным, диалоговое окно сообщения отображает имя исходного файла и номер строки утверждения. Если в диалоговом окне выбрать "Повторить", обращение к AfxDebugBreak вызовет прерывание выполнения и остановит отладчик. В этот момент можно для определения причины ложности утверждения проверить стек вызовов и воспользоваться другими функциями отладчика. Если активизирована JIT-отладка, диалоговое окно может вызвать отладчик, если тот не был запущен в момент срабатывания утверждения.

Следующий пример показывает, как использовать ASSERT для проверки значения, возвращенного следующей функцией:

int x = SomeFunc(y);
ASSERT(x >= 0);   //  Assertion fails if x is negative

ASSERT можно применять с функцией IsKindOf, чтобы задать проверку типов аргументов функции:

ASSERT( pObject1->IsKindOf( RUNTIME_CLASS( CPerson ) ) );

Макрос ASSERT отслеживает программные ошибки только в отладочной версии программы. Этот макрос не создает никакого кода в окончательной версии. Если именно в окончательной версии нужно оценить выражение, вместо ASSERT следует применять макрос VERIFY.

См. также

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

Утверждения