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

这两个缺一不可

相关推荐
renhongxia12 分钟前
计算机视觉实战:图像去噪模型训练与应用
开发语言·人工智能·机器学习·计算机视觉·prompt
寒秋花开曾相惜3 分钟前
(学习笔记)4.1 Y86-64指令集体系结构(4.1.6 一些Y86-64指令 )
linux·运维·服务器·开发语言·笔记·学习·安全
阿Y加油吧4 分钟前
算法二刷复盘:LeetCode 79 单词搜索 & 131 分割回文串(Java 回溯精讲)
java·算法·leetcode
-凌凌漆-8 分钟前
【QML】qml和C++中同时使用单例模式
java·c++·单例模式
那个失眠的夜9 分钟前
RESTful 语法规范 核心注解详解
java·spring·mvc·mybatis
我命由我1234511 分钟前
Android 开发问题:Unresolved reference: kapt
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
用户2986985301413 分钟前
Java 实现 ODT 转 PDF:一种简洁的技术实现方案
java·后端
城管不管14 分钟前
EasyExcel
java·开发语言·后端·easyexcel
鉴生Eric15 分钟前
拉孚BMA系统物联网架构:全面赋能传统楼宇BA系统的数字化转型
java·后端·struts
1368木林森19 分钟前
深入浅出:JDK1.7→JDK1.8 HashMap进化史,再到ConcurrentHashMap的并发救赎
java·开发语言