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

这两个缺一不可

相关推荐
乂爻yiyao4 分钟前
1.1 JVM 内存区域划分
java·jvm
Bony-24 分钟前
Go语言垃圾回收机制详解与图解
开发语言·后端·golang
hmywillstronger31 分钟前
【Rhino】【Python】 查询指定字段并cloud标注
开发语言·python
新缸中之脑31 分钟前
Weave.js:开源实时白板库
开发语言·javascript·开源
我能坚持多久33 分钟前
D16—C语言内功之数据在内存中的存储
c语言·开发语言
leo__52044 分钟前
C#与三菱PLC串口通信源码实现(基于MC协议)
开发语言·c#
没有bug.的程序员1 小时前
Spring Cloud Eureka:注册中心高可用配置与故障转移实战
java·spring·spring cloud·eureka·注册中心
二十雨辰1 小时前
[python]-函数
开发语言·python
CryptoRzz1 小时前
如何高效接入日本股市实时数据?StockTV API 对接实战指南
java·python·kafka·区块链·状态模式·百度小程序
码农水水1 小时前
中国邮政Java面试被问:容器镜像的多阶段构建和优化
java·linux·开发语言·数据库·mysql·面试·php