Rust 编程中的 Panic! Macro
Rust 中对临界错误的处理工作得益于 panic! Macro的帮助。在 Rust 中还有其他处理错误的方法,但 panic 的独特之处在于它用于处理无法恢复的错误。
当我们执行 panic! Macro时,整个程序从栈中展开,因此程序将退出。由于程序退出的这种方式,我们通常将 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.
请注意,当我们看到饮料是“柠檬水”时,我们正在创建 panic。另一个更实用的 panic 用例可能是这样的 −
示例
fn main() { let x = 3; let y = 0; if y == 0 { panic!("Cannot divide by zero!"); } println!("{}", x/y); }
输出
thread 'main' panicked at 'Cannot divide by zero!', src/main.rs:6:5 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
广告