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

这两个缺一不可

相关推荐
木向5 分钟前
leetcode22:括号问题
开发语言·c++·leetcode
comli_cn7 分钟前
使用清华源安装python包
开发语言·python
筑基.13 分钟前
basic_ios及其衍生库(附 GCC libstdc++源代码)
开发语言·c++
m0_7482451727 分钟前
Web第一次作业
java
小码的头发丝、27 分钟前
Java进阶学习笔记|面向对象
java·笔记·学习
雨颜纸伞(hzs)28 分钟前
C语言介绍
c语言·开发语言·软件工程
J总裁的小芒果30 分钟前
THREE.js 入门(六) 纹理、uv坐标
开发语言·javascript·uv
m0_5485147730 分钟前
前端Pako.js 压缩解压库 与 Java 的 zlib 压缩与解压 的互通实现
java·前端·javascript
坊钰1 小时前
【Java 数据结构】移除链表元素
java·开发语言·数据结构·学习·链表