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}")]

这两个缺一不可

相关推荐
潜创微科技--高清音视频芯片方案开发39 分钟前
2026年C转DP芯片方案深度分析:从适配场景到成本性能的优选指南
c语言·开发语言
Thomas.Sir1 小时前
第三章:Python3 之 字符串
开发语言·python·字符串·string
刘景贤1 小时前
C/C++开发环境
开发语言·c++
daidaidaiyu1 小时前
JMS, ActiveMQ 学习一则
java
weixin_704266052 小时前
SpringBoot全注解开发指南
java·spring boot·mybatis
星如雨グッ!(๑•̀ㅂ•́)و✧2 小时前
Webflux fromXXX对比
java
Dxy12393102162 小时前
Python 根据列表中某字段排序:从基础到进阶
开发语言·windows·python
competes2 小时前
学生需求 交易累计积分,积分兑换奖品
java·大数据·开发语言·人工智能·java-ee
小羊子说2 小时前
Android系统中 socketpair 的源码解读与应用分析小结
android·java