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

这两个缺一不可

相关推荐
月明长歌16 小时前
【码道初阶】Leetcode136:只出现一次的数字:异或一把梭 vs HashMap 计数(两种解法完整复盘)
java·数据结构·算法·leetcode·哈希算法
龘龍龙16 小时前
Python基础学习(七)
开发语言·python·学习
Swift社区16 小时前
LeetCode 456 - 132 模式
java·算法·leetcode
wjs202416 小时前
Julia 基本语法
开发语言
MediaTea16 小时前
Python 库手册:wave WAV 音频读写工具
开发语言·python·音视频
写代码的【黑咖啡】16 小时前
python的小型实践项目
开发语言·python
Knight_AL16 小时前
Maven <dependencyManagement>:如何在多模块项目中集中管理依赖版本
java·数据库·maven
狼与自由16 小时前
excel 导入 科学计数法问题处理
java·前端·excel
建群新人小猿16 小时前
陀螺匠企业助手 运行环境
java·大数据·人工智能·docker·php
写代码的小阿帆16 小时前
Java本地缓存技术——Guava、Caffeine
java·缓存·guava