Утверждения — это утверждения, используемые для проверки предположений, сделанных программистом. Например, мы можем использовать утверждение, чтобы проверить, равен ли указатель, возвращаемый функцией malloc (), NULL или нет.
Ниже приводится синтаксис для утверждения.
void assert( int expression );
Если выражение равно 0 (false), то выражение, имя файла исходного кода и номер строки отправляются со стандартной ошибкой, а затем вызывается функция abort ().
Например, рассмотрим следующую программу.
|
Выход
Assertion failed: x==7, file test.cpp, line 13 This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.
Утверждение против обычной обработки ошибок
Утверждения в основном используются для проверки логически невозможных ситуаций. Например, их можно использовать для проверки состояния, которого ожидает код, прежде чем он начнет выполняться, или состояния после его завершения. В отличие от обычной обработки ошибок, утверждения обычно отключаются во время выполнения. Поэтому не стоит писать операторы asser (), которые могут вызывать побочные эффекты. Например, написать что-то вроде assert (x = 5) не очень хорошая идея, поскольку x изменяется, и это изменение не произойдет, когда утверждения отключены. Смотрите это для более подробной информации.
Игнорирование утверждений
В C / C ++ мы можем полностью удалить утверждения во время компиляции, используя препроцессор NODEBUG.
|
Вышеуказанная программа компилируется и работает нормально.
В Java утверждения не включены по умолчанию, и мы должны передать опцию движку времени выполнения, чтобы включить их.
Ссылка:
http://en.wikipedia.org/wiki/Assertion_%28software_development%29
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Предопределенные макросы в C с примерами
- Как создать графический интерфейс в программировании на C, используя GTK Toolkit
- C ++ программа для печати всех четных и нечетных чисел от 1 до N
- Переверните содержимое файла и сохраните его в другом
- Библиотека ctype.h (<cctype>) в C / C ++ с примерами
- Минимум ячеек, которые нужно перевернуть, чтобы получить подматрицу 2 * 2 с равными элементами
- Вложенные циклы в C ++ с примерами
- Слабые байты в структурах: объяснение на примере
- Функция _Find_first () в C ++ bitset с примерами
- Функция _Find_next () в C ++ bitset с примерами
- Обход всех уровней N-арного дерева влево-вправо
- Разница между итераторами и указателями в C / C ++ с примерами
- ostream :: seekp (pos) метод в C ++ с Exmaples
- Методы по умолчанию в C ++ с примерами
0.00 (0%) 0 votes