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

这两个缺一不可

相关推荐
Li_7695323 分钟前
Spring Cloud —— SkyWalking(四)
java·spring cloud·skywalking
while(1){yan}5 分钟前
多线程CAS八股文
java·开发语言·面试
zfj3217 分钟前
Docker和容器OCI规范的关系
java·docker·eureka
飞Link10 分钟前
【轻量拓展区】网络 QoS 与带宽、延迟、抖动:AI 推理的性能瓶颈
开发语言·网络·人工智能
李拾叁的摸鱼日常11 分钟前
从 Java 8 升级视角看Java 17 新特性详解
java·后端
张人大 Renda Zhang18 分钟前
2025 年版笔记:Java 开发如何用 AI 升级 CI/CD 和运维?
java·运维·ci/cd·ai·云原生·架构·自动化
Haoea!20 分钟前
jkd8特性
开发语言
阿里云云原生25 分钟前
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
java
Swizard39 分钟前
极限瘦身:将 Python AI 应用从 100MB 砍到 30MB
java·python·ai·移动开发
编织幻境的妖1 小时前
Python代码性能优化工具与方法
开发语言·python·性能优化