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

这两个缺一不可

相关推荐
小刘不想改BUG几秒前
LeetCode LCR 010 和为 K 的子数组 (Java)
java·算法·leetcode
MeyrlNotFound1 分钟前
(二十一)Java集合框架源码深度解析
java·开发语言
TNTLWT5 分钟前
Qt功能区:Ribbon使用
开发语言·qt·ribbon
正在走向自律10 分钟前
2025年、2024年最新版IntelliJ IDEA下载安装过程(含Java环境搭建+Maven下载及配置)
java·jvm·jdk·maven·intellij-idea
不会就选C.10 分钟前
【开源分享】健康饮食管理系统(双端+论文)
java·spring boot·开源·毕业设计
永远有多远.11 分钟前
【高频面试题】LRU缓存
java·缓存·面试
Ten peaches12 分钟前
Selenium-Java版(环境安装)
java·前端·selenium·自动化
Ronin30518 分钟前
【C++】18.二叉搜索树
开发语言·数据结构·c++
Susea&19 分钟前
初始C++:类和对象(中)
c语言·开发语言·c++
编程、小哥哥29 分钟前
Java求职者面试:从Spring Boot到微服务的技术点解析
java·spring boot·redis·微服务·spring security·高并发·面试题