【Rust每周一库】anyhow和thiserror - 错误处理库

本文介绍了Rust中的错误处理库anyhow和thiserror。anyhow兼容std::error::Error,简化了自定义错误类型的错误处理,而thiserror则提供了方便的宏来实现自定义错误。通过这两个库,可以更轻松地管理和返回Result,增强程序的错误处理能力。
摘要由CSDN通过智能技术生成

前言

之前我们借助讲解failure库,详细说明的Rust错误处理的哲学,这有助于我们理解今天的主题,anyhow和thiserror

Anyhow提供了一个anyhow::Error trait(有点类似failure::Error)。而得益于std::error::Error所做的修改,它anyhow::Error与std::error::Error兼容的。也就是说,对于自定义的错误类型,只需要实现std::error::Error即可。这对于程序的兼容性是一大利好,也因此failure库被日渐废弃。而thiserror正是方便大家为自定义的错误使用宏实现std::error::Error而设计的。

依赖

[dependencies]anyhow = "1.0"thiserror = "1.0"
Anyhow用法

在需要返回Result的地方,使用Result<T, anyhow::Error>或者等价的anyhow::Result<T>,就可以利用抛出任何类型实现了std::error::Error的错误

use anyhow::Result;
fn get_cluster_info() -> Result<ClusterMap> {    let config =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值