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


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

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

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

Выпуск

Visual Basic

C#

C++

Web Developer

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

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

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

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

Standard

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

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

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

Pro и Team

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

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

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

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

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

Применяется

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

Неприменимо

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

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

Для проверки утверждения 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.

См. также

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

Утверждения