1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017年7月6日 |
---|
#4 在 #static-assert
4KB
69 行
不要恐慌!()
确保代码在编译时不会引发恐慌。
示例
此代码可以正常编译和(不)运行
let should_panic = false;
if should_panic {
dont_panic!("This will never execute.");
}
然而,此代码将导致链接错误
let should_panic = true;
if should_panic {
dont_panic!("This will never execute.");
}
注意事项
- 这仅在指定了适当的 opt_level 时才有效 - 它可能需要发布构建。
- 错误消息是奇怪的链接错误。您不会得到行号等。
- 可能存在您知道代码不可达但编译器无法证明的情况。
lib.rs
:
此软件包提供与 panic!() 看起来非常相似的宏,但如果它们的调用没有被优化掉,它们将引发链接错误。这可以用来确保编译器优化掉某些代码。
示例
#[macro_use]
extern crate dont_panic;
fn main() {
/*
let x = 6 * 9;
if x == 42 {
dont_panic!("6 * 9 == 42");
}
*/
let x = false;
if x {
dont_panic!("42");
}
}
使用 --release
或 --features=panic
编译