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

这两个缺一不可

相关推荐
foundbug9997 小时前
无人机离散系统模型预测控制(MPC)MATLAB实现
开发语言·matlab·无人机
某人辛木8 小时前
Maven一步到位
java·maven
爱写代码的小朋友8 小时前
使用 Nuitka 打包 Python 应用:从入门到进阶
开发语言·python
一条咸鱼_SaltyFish8 小时前
DDD 架构重构实践:AI Skills 如何赋能DDD设计与重构
java·人工智能·ai·重构·架构·ddd·领域驱动设计
yuan199978 小时前
C# 断点续传下载文件工具设计与实现
开发语言·c#
想唱rap8 小时前
线程之条件变量和生产消费模型
java·服务器·开发语言·数据库·mysql·ubuntu
花千树-0108 小时前
Java AI + TTS:让大模型开口说话
java·人工智能·ai·chatgpt·langchain·aigc·ai编程
Boop_wu8 小时前
[Java 算法] 栈
java·开发语言·算法
不爱吃炸鸡柳8 小时前
C++ STL 核心:string 从入门到精通(面试+源码+OJ实战)
java·c++·面试
来自远方的老作者8 小时前
第7章 运算符-7.5 比较运算符
开发语言·数据结构·python·算法·代码规范·比较运算符