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

这两个缺一不可

相关推荐
南 阳5 小时前
Python从入门到精通day16
开发语言·python·算法
李少兄5 小时前
Java 后端开发中 Service 层依赖注入的最佳实践:Mapper 还是其他 Service?
java·开发语言
jiaguangqingpanda6 小时前
Day29-20260125
java·数据结构·算法
不会c+6 小时前
@Controller和@RequestMapping以及映射
java·开发语言
1登峰造极6 小时前
uniapp 运行安卓报错reportJSException >>>> exception function:createInstanceContext, exception:white screen
android·java·uni-app
難釋懷6 小时前
解决状态登录刷新问题
java·开发语言·javascript
ytttr8736 小时前
基于MATLAB的三维装箱程序实现(遗传算法+模拟退火优化)
开发语言·matlab
潇凝子潇6 小时前
Java 设计支持动态调整的LFU缓存: 需包含热度衰减曲线和淘汰策略监控
java·spring·缓存
94甘蓝6 小时前
第 5 篇 Spring AI - Tool Calling 全面解析:从基础到高级应用
java·人工智能·函数调用·工具调用·spring ai·tool calling
耶耶耶耶耶~6 小时前
Modern C++ 特性小结
开发语言·c++