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

这两个缺一不可

相关推荐
豆豆几秒前
建站系统怎么选?2026年SaaS平台与开源CMS对比分析
java·开发语言·开源·cms·网站建设·网站制作·网站开发
神仙别闹几秒前
基于C++实现的简单的SMTP服务器
服务器·开发语言·c++
鹓于6 分钟前
PPT VBA随机选题系统实现详解
java·前端·javascript
光泽雨7 分钟前
c#数值类型之间的自动转换
java·算法·c#
云烟成雨TD9 分钟前
Spring AI Alibaba 1.x 系列【17】模型拦截器(ModelInterceptor)
java·人工智能·spring
Flittly11 分钟前
【SpringSecurity新手村系列】(1)初识安全框架
java·spring boot·安全·spring·安全架构
Predestination王瀞潞15 分钟前
Java EE3-我独自整合(第五章:Spring AOP 介绍与入门案例)
java·后端·spring·java-ee
それども19 分钟前
Spring Boot 异常拦截处理机制
java·spring
Mem0rin22 分钟前
[Java/数据结构]PriorityQueue
java·数据结构