Rust - panic!错误处理
Panic! 错误处理
Rust错误处理
- Rust的可靠性:错误处理
- 大部分情况下:在编译时提示错误,并处理
- 错误的分类
- 可恢复
- 例如文件未找到,可再次尝试
- 可恢复
- 不可恢复
- Bug,例如访问的索引超出范围
- Rust没有类似的异常机制
- 可恢复错误:
Result<T, E>
- 不可恢复错误:
panic!
宏
- 可恢复错误:
1.2 不可恢复的错误和panic! 宏
- 当
panic!
宏执行时- 程序会打印一个错误消息
- 展开、清理调用栈
- 退出程序
- 为应对
panic
,展开或中止调用栈- 默认情况下,当
panic
发生- 程序展开调用栈(工作量大)
- Rust 沿着调用栈往回走
- 清理每一个遇到的函数中的数据
- 或立即中止调用栈
- 不进行清理,直接停止程序
- 内存需要 OS 进行清理
- 默认情况下,当
- 要想二进制文件更小,把设置从“展开”改为“中止”
- 在
Cargo.toml
中适当的 profile 部分设置 panic = 'abort'
- 在
1.3 Result 枚举
- 使调用者处理可能发生的错误,而不是忽视它们。在 Rust 中处理可能失败的函数时,通常会返回一个
Result
类型:
enum Result<T, E> {
// 操作成功的情况
Ok(T),
// 操作失败的情况
Err(E),
}
版权所有:Ljierui'Blog
文章标题:Rust - panic!错误处理
文章链接:https://fuckdog.org/post-46.html
本站文章均为原创,未经授权请勿用于任何商业用途
文章标题:Rust - panic!错误处理
文章链接:https://fuckdog.org/post-46.html
本站文章均为原创,未经授权请勿用于任何商业用途
推荐阅读: