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

这两个缺一不可

相关推荐
习习.y2 分钟前
关于python中的面向对象
开发语言·python
lingggggaaaa2 分钟前
免杀对抗——C2远控篇&PowerShell&有无文件落地&C#参数调用&绕AMSI&ETW&去混淆特征
c语言·开发语言·笔记·学习·安全·microsoft·c#
技术净胜3 分钟前
MATLAB 基因表达数据处理与可视化全流程案例
开发语言·matlab
友友马3 分钟前
『Qt』多元素控件
开发语言·qt
寒山李白11 分钟前
IDEA中如何配置Java类注释(Java类注释信息配置,如作者、备注、时间等)
java
hmbbcsm11 分钟前
练习python题目小记(六)
开发语言·python
我要添砖java13 分钟前
<JAVAEE> 多线程4-wait和notify方法
android·java·java-ee
Rysxt_22 分钟前
Spring Boot SPI 教程
java·数据库·sql
海边夕阳200622 分钟前
主流定时任务框架对比:Spring Task/Quartz/XXL-Job怎么选?
java·后端·spring·xxl-job·定时任务·job
4***V20229 分钟前
Vue3响应式原理详解
开发语言·javascript·ecmascript