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
廣告