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

这两个缺一不可

相关推荐
程序猿_极客21 分钟前
【2025最新】 Java入门到实战:包装类、字符串转换、equals/toString + 可变字符串,一篇搞定开发高频场景(含案例解析)
java·开发语言·java进阶·面试核心·java快速入门
U***e6331 分钟前
Python测试
开发语言·python
四谎真好看43 分钟前
Java 黑马程序员学习笔记(进阶篇28)
java·笔记·学习·学习笔记
晨晖21 小时前
springboot的Thymeleaf语法
java·spring boot·后端
yi碗汤园1 小时前
Visual Studio常用的快捷键
开发语言·ide·c#·编辑器·visual studio
p***95001 小时前
【SpringBoot】日志文件
java·spring boot·spring
Elias不吃糖1 小时前
NebulaChat:C++ 高并发聊天室服务端
开发语言·c++·redis·sql·项目文档
b***66611 小时前
【springboot】健康检查 监控
java·spring boot·后端
haofafa1 小时前
JavaScript性能优化实战
开发语言·javascript·性能优化
明洞日记1 小时前
【设计模式手册010】组合模式 - 树形结构的优雅处理
java·设计模式·组合模式