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

更新于:03-Apr-2021

222 浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告