panic与不可恢复错误 #

一、panic! 宏 #

1.1 触发panic #

rust
fn main() {
    panic!("程序崩溃!");
}

1.2 数组越界 #

rust
fn main() {
    let v = vec![1, 2, 3];
    // v[99];  // panic: index out of bounds
}

二、栈展开 #

panic时会进行栈展开,调用所有析构函数。

三、panic 设置 #

toml
# Cargo.toml
[profile.release]
panic = 'abort'  # 直接终止,不展开栈

四、总结 #

本章学习了:

  • panic! 宏
  • 栈展开机制
  • panic 配置
最后更新:2026-03-27