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

这两个缺一不可

相关推荐
没有bug.的程序员3 分钟前
Eureka 注册中心原理与服务注册发现机制
java·spring·云原生·eureka·架构·注册中心·服务注册发现
optimistic_chen4 分钟前
【Java EE进阶 --- SpringBoot】统一功能处理
java·spring boot·java-ee·json·统一功能处理
m0_591338916 分钟前
day8鹏哥C语言--函数
c语言·开发语言·算法
oplp11 分钟前
回过头来重新对C语言进行深度学习(一)
c语言·开发语言
几颗流星11 分钟前
Rust 常用语法速记 - 迭代器
后端·rust
西岭千秋雪_16 分钟前
Zookeeper数据结构
java·数据结构·分布式·zookeeper
青云交18 分钟前
Java 大视界 --Java 大数据机器学习模型在金融风险压力测试中的应用与验证
java·随机森林·机器学习·lstm·压力测试·联邦学习·金融风险
程序编程- Java22 分钟前
和平精英java 游戏程序
java·游戏程序·安全架构·玩游戏
oioihoii24 分钟前
C++中的多态:动态多态与静态多态详解
java·开发语言·c++
毕设源码-朱学姐35 分钟前
【开题答辩全过程】以 基于Java的医务室病历管理小程序为例,包含答辩的问题和答案
java·开发语言·小程序