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

这两个缺一不可

相关推荐
东离与糖宝4 分钟前
2026 Java AI框架选型:Spring AI/LangChain4j企业级对比
java·人工智能
郝学胜-神的一滴5 分钟前
[力扣 20] 栈解千愁:有效括号序列的优雅实现与深度解析
java·数据结构·c++·算法·leetcode·职场和发展
林姜泽樾6 分钟前
python入门第六课,其他字符串格式化和input
开发语言·python·pycharm
代码改善世界6 分钟前
【C++初阶】手撕C++ string类
java·开发语言·c++
追雨潮9 分钟前
内存向量检索引擎设计与实现:C# 轻量级 Milvus 替代方案
开发语言·c#·milvus
东离与糖宝10 分钟前
Java AI工程化:PyTorch On Java+SpringBoot微服务部署(2025-2026最新实战)
java·人工智能
隐形喷火龙11 分钟前
CentOS7 基于 FRP 实现 Java Web 服务内网穿透实操记录
java·开发语言
萝卜白菜。11 分钟前
TongWeb8.0支持JBoss Weld‌
java·java-ee
万邦科技Lafite11 分钟前
淘宝关键词API接口获取分类商品信息指南
java·前端·数据库·开放api·淘宝开放平台
xxjj998a14 分钟前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring