捕获堆栈展开
默认情况下,panic 会导致堆栈展开。您可以捕获展开信息:
use std::panic; fn main() { let result = panic::catch_unwind(|| { println!("hello!"); }); assert!(result.is_ok()); let result = panic::catch_unwind(|| { panic!("oh no!"); }); assert!(result.is_err()); }
- 如果服务器需要持续运行(即使是在请求发生崩溃的情况下), 此方法十分有用。
- 如果您在
Cargo.toml
中设置了panic = 'abort'
,此方法不会生效。