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

这两个缺一不可

相关推荐
.豆鲨包6 分钟前
【Android】深入理解Activity的生命周期和IntentFilter
android·java
CryptoRzz12 分钟前
印度股票数据 PHP 对接文档 覆盖 BSE(孟买证券交易所)和 NSE(印度国家证券交易所)的实时数据
android·服务器·开发语言·区块链·php
lkbhua莱克瓦2414 分钟前
集合进阶6——TreeMap底层原理
java·开发语言·笔记·学习方法·hashmap
普通网友16 分钟前
内存对齐与缓存友好设计
开发语言·c++·算法
JEECG低代码平台18 分钟前
GitHub 十大 Java 语言 AI 开源项目推荐
java·人工智能·github
小咖张21 分钟前
idea 启动失败,不加载自己的配置文件
java·ide·intellij-idea
lsx20240623 分钟前
DOM 节点信息
开发语言
m***119029 分钟前
使用IDEA环境编译Spring源码及spring源码调试环境搭建
java·spring·intellij-idea
普通网友40 分钟前
C++编译期数据结构
开发语言·c++·算法
代码程序猿RIP1 小时前
【C++开发面经】全过程面试问题详解
java·c++·面试