Макрос debug_assert!
Макрос debug_assert! используется для проверки условий
во время выполнения. Если условие истинно, программа продолжает
работу. Если ложно - макрос вызывает панику. Главная особенность
заключается в том, что проверка выполняется только в отладочном
режиме сборки (debug build). В релизной сборке (release build)
этот макрос полностью игнорируется, что позволяет избежать
накладных расходов на проверки в финальной версии программы.
Параметром макрос принимает условие, которое нужно проверить.
Синтаксис
debug_assert!(condition);
Пример
Давайте проверим условие, которое является истинным:
fn main()
{
let x = 5;
debug_assert!(x > 0);
println!("Проверка пройдена");
}
Результат выполнения кода:
"Проверка пройдена"
Пример
Давайте проверим условие, которое является ложным. В отладочной сборке это приведет к панике:
fn main()
{
let x = -5;
debug_assert!(x > 0);
println!("Эта строка не выполнится");
}
Результат выполнения кода в отладочном режиме:
thread 'main' panicked at 'assertion failed: x > 0'
Пример
В релизной сборке (при использовании флага --release)
макрос не выполняет проверку, и программа продолжает работу:
fn main()
{
let x = -5;
debug_assert!(x > 0);
println!("Программа продолжает работу");
}
Результат выполнения кода в релизном режиме:
"Программа продолжает работу"
Смотрите также
-
макрос
assert!,
который проверяет условие всегда, независимо от режима сборки -
макрос
debug_assert_eq!,
который проверяет равенство двух значений в отладочном режиме -
макрос
debug_assert_ne!,
который проверяет неравенство двух значений в отладочном режиме -
макрос
assert_eq!,
который проверяет равенство двух значений всегда