Макрос debug_assert!
Макрос debug_assert! используется для проверки утверждений (assertions)
во время разработки. Он работает аналогично макросу assert!,
но с важным отличием: проверка выполняется только в отладочном режиме
(когда не установлен флаг --release). В релизных сборках
этот макрос полностью игнорируется и не добавляет накладных расходов
в производительность. Параметром макрос принимает условие,
которое нужно проверить. Если условие ложно, программа паникует
с сообщением об ошибке.
Синтаксис
debug_assert!(condition);
Пример
Давайте проверим утверждение, которое истинно, и убедимся, что программа не паникует:
fn main()
{
let x = 5;
debug_assert!(x > 0);
println!("Check passed");
}
Результат выполнения кода:
"Check passed"
Пример
Давайте проверим утверждение, которое ложно, и увидим, как программа паникует:
fn main()
{
let x = -5;
debug_assert!(x > 0);
println!("Check passed");
}
Результат выполнения кода:
thread 'main' panicked at 'assertion failed: x > 0', src/main.rs:4:5
Пример
Макрос можно использовать с дополнительным сообщением для более информативного вывода при панике:
fn main()
{
let x = -5;
debug_assert!(x > 0, "x must be positive, got {}", x);
println!("Check passed");
}
Результат выполнения кода:
thread 'main' panicked at 'x must be positive, got -5', src/main.rs:4:5
Смотрите также
-
макрос
panic!,
который немедленно вызывает панику с сообщением -
метод
unwrap,
который извлекает значение или паникует при ошибке -
метод
expect,
который извлекает значение или паникует с сообщением -
макрос
unreachable!,
который помечает недостижимый код