Rust panic 不可恢复错误

发布时间: 更新时间: 总字数:240 阅读时间:1m 作者: IP上海 分享 网址

Rust使用panic!宏抛出不可恢复错误,当panic!执行时,程序退出。

介绍

panic! 宏执行时:

  • 程序会打印对应的错误信息
  • 展开(unwind)、清理调用栈(stack):按照栈的调用倒序清理函数中的数据
  • 或终止(abort)调用栈:不清理调用栈,有操作系统清理,相对二进制文件更小
    • Cargo.toml 的 profile 中配置:[profile.release]\npanic='abort'
  • 退出程序

使用场景

使用 panic! 场景:

  • 测试异常时

示例

fn main() {
    panic!("mock panic occur.");
}

错误信息:

$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.00s
     Running `target/debug/test123`
thread 'main' panicked at 'mock panic occur.', src/main.rs:2:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数