25、Rust 错误处理与朴素新闻通讯发送实现

Rust 错误处理与朴素新闻通讯发送实现

1. 错误处理工具选择

在 Rust 中,关于错误处理有一个常见误解,认为 anyhow 用于应用程序, thiserror 用于库。但实际上,选择错误处理工具应基于意图。
- 使用错误枚举 :若期望调用者根据不同失败模式采取不同行为,可使用错误枚举,让调用者匹配不同变体。可借助 thiserror 减少样板代码。
- 使用不透明错误 :若调用者在失败时只想放弃,主要关注向操作员或用户报告错误,可使用不透明错误,不向调用者提供错误内部细节的编程访问。若觉得 anyhow eyre 的 API 方便,可使用它们。

多数 Rust 库返回错误枚举而非 Box<dyn std::error::Error> ,因为库作者不能或不想对用户意图做假设,枚举让用户有更多控制权,但接口更复杂,用户需筛选多个变体来确定特殊处理。设计合适的错误类型时,要仔细考虑用例和可做的假设,有时 Box<dyn std::error::Error> anyhow::Error 对库也是合适的选择。

2. 错误日志记录

请求失败时会产生多个错误级别的日志记录,如 insert_subscriber 代码中、 actix_web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值