一个优秀的项目,错误处理的优雅性是至关重要的,而rust,anyhow creat是绕不过去的一个,今天我们来研究下,怎么使用它,帮助我们写出更优雅的代码关注 vx golang技术实验室,获取更多golang、rust好文一、thiserror初体验可以使用命令cargo add thiserror将它添加到自己的项目中,或者在Cargo.toml中添加如下的配置:[dependencies]
thiserror = "1.0"thiserror可以用于枚举或者结构体,例如,我们来看一个基本的例子:use std::io;
use log::error;
use thiserror::Error;
#[derive(Error,Debug)]
pub enum DataStoreError {
#[error("data store disconnected")]
Disconnect(#[from] std::io::Error),
#[error("the data for key `{0}` is not available")]
Redaction(String),
#[error("invalid header (expected {expected:?},found {found:?})")]
InvalidHeader
...
继续阅读
(108)