恐慌!Rust 编程中的宏
在Rust中处理严重错误是在panic的帮助下完成的!宏。在Rust中还有其他处理错误的方法,但panic是独一无二的,因为它用于处理不可恢复的错误。
当我们执行panic!宏,整个程序从堆栈中展开,因此退出。由于程序退出的这种方式,我们通常使用恐慌!对于不可恢复的错误。
语法
调用恐慌的语法如下所示-
panic!("An error was encountered");
我们通常在括号内传递自定义消息。
示例
考虑下面显示的代码作为参考-
fn drink(beverage: &str) { if beverage == "lemonade" { panic!("AAAaaaaa!!!!"); } println!("Some refreshing {} is all I need.", beverage); } fn main() { drink("soda"); drink("lemonade"); }输出结果
thread 'main' panicked at 'AAAaaaaa!!!!', src/main.rs:3:33 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace Some refreshing soda is all I need.
请注意,当我们看到饮料是“柠檬水”时,我们正在制造恐慌。另一个更有用的恐慌案例可能是这样的-
示例
fn main() { let x = 3; let y = 0; if y == 0 { panic!("不能除以零!"); } println!("{}", x/y); }输出结果
thread 'main' panicked at '不能除以零!', src/main.rs:6:5 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace