rust中的thiserror详细理解

复制代码
use anyhow::{bail, Context, Error, Result};
use std::{boxed, fs};
use std::io::Read;
use thiserror::Error;

// #[derive(Clone, Debug, Eq, Error, PartialEq)]
// #[error("Found no username in {0}")]
#[derive(Debug,Error)]
#[error("Found no username in {0}")]
struct EmptyUsernameError(String);

fn read_username(path: &str) ->Box<dyn std::error::Error>{

        return Box::new(EmptyUsernameError(path.to_string()));

}

fn main() {
    //fs::write("config.dat", "").unwrap();
    println!("{:?}", read_username("config.dat")) ;
}

结合https://docs.rs/thiserror/latest/thiserror/ 一起看。

#[derive(Debug,Error)] #[error("Found no username in {0}")]

这两个缺一不可

相关推荐
m0_73691910几秒前
C++中的享元模式变体
开发语言·c++·算法
集芯微电科技有限公司6 分钟前
15V/2A同步开关型降压单节/双节锂电池充电管理IC支持输入适配器 DPM 功能
c语言·开发语言·stm32·单片机·嵌入式硬件·电脑
To Be Clean Coder6 分钟前
【Spring源码】createBean如何寻找构造器(四)——类型转换与匹配权重
java·后端·spring
-孤存-18 分钟前
SpringBoot核心注解与配置详解
java·spring boot·后端
Hx_Ma1633 分钟前
BCrypt
java
We....33 分钟前
鸿蒙与Java跨平台Socket通信实战
java·服务器·tcp/ip·arkts·鸿蒙
笃行客从不躺平36 分钟前
Token 复习
java·分布式·spring cloud
菩提树下的凡夫37 分钟前
Python 环境管理工具
开发语言·python
索荣荣1 小时前
JavaToken实战指南:从原理到应用
开发语言·python
Albert Edison1 小时前
【Python】函数
java·linux·python·pip