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

这两个缺一不可

相关推荐
!停1 分钟前
C语言顺序表
c语言·开发语言
你怎么知道我是队长5 分钟前
python---新年烟花
开发语言·python·pygame
智算菩萨10 分钟前
【Python机器学习】主成分分析(PCA):高维数据的“瘦身术“
开发语言·python·机器学习
爬山算法11 分钟前
Hibernate(15)Hibernate中如何定义一个实体的主键?
java·后端·hibernate
廋到被风吹走13 分钟前
【Spring】Spring AMQP 详细介绍
java·spring·wpf
stars-he15 分钟前
单相可控整流电路的MATLAB仿真设计(2)
开发语言·matlab
一起养小猫1 小时前
LeetCode100天Day6-回文数与加一
java·leetcode
AC赳赳老秦1 小时前
政务数据处理:DeepSeek 适配国产化环境的统计分析与报告生成
开发语言·hadoop·spring boot·postgresql·测试用例·政务·deepseek
程序员小假1 小时前
我们来说一下 MySQL 的慢查询日志
java·后端
xlxxy_2 小时前
abap 批量创建供应商
运维·开发语言·sap·abap·pp·mm