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

这两个缺一不可

相关推荐
马猴烧酒.几秒前
【面试八股|Java集合】Java集合常考面试题详解
java·开发语言·python·面试·八股
以卿a7 分钟前
C++(继承)
开发语言·c++·算法
lly2024068 分钟前
XQuery 选择和过滤
开发语言
测试工程师成长之路17 分钟前
Serenity BDD 框架:Java + Selenium 全面指南(2026 最新)
java·开发语言·selenium
lang2015092822 分钟前
Java JSON绑定API:JSR 367详解
java·java-ee
czxyvX24 分钟前
017-AVL树(C++实现)
开发语言·数据结构·c++
eWidget30 分钟前
随机森林原理:集成学习思想 —— Java 实现多棵决策树投票机制
java·数据库·随机森林·集成学习·金仓数据库
你真是饿了41 分钟前
1.C++入门基础
开发语言·c++
天天进步20151 小时前
Python全栈项目:实时数据处理平台
开发语言·python
Tipriest_1 小时前
Python中is关键字详细说明,比较的是地址还是值
开发语言·python