Rust是否存在仅输出消息、无法被处理的内置错误类型?
推荐的Rust内置简易错误类型
Rust标准库里有刚好匹配你需求的方案,直接用String就行——从Rust 1.26开始,String自动实现了Error trait,完全满足“仅输出消息、无需额外处理逻辑”的要求,不用自定义任何错误类型。
把你的代码改成这样就能用:
use std::error::Error; fn some_operation() -> Result<i32, impl Error> { let value: Option<i32> = /* 可能出错的操作(无Bug时正常执行) */; value.ok_or_else(|| "Something just happened that probably shouldn't have".to_string()) }
String作为错误时,它的Display和Debug输出就是字符串本身,完美适配日志打印的需求。上层代码捕获到这个错误后,只需要记录日志,就能中断当前任务但不终止整个进程,完全符合你对“静默panic”的定位。
如果你需要更抽象的错误类型,也可以用Box<dyn Error>作为返回值,但String已经足够轻量且直观,是更贴合你需求的选择。
内容的提问来源于stack exchange,提问作者A.Z.
相关产品推荐
相关产品推荐

