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

这两个缺一不可

相关推荐
这辈子谁会真的心疼你几秒前
如何修改照片的拍摄信息?三个实用方案分享
java·python·数码相机
测绘第一深情1 分钟前
Transformer:从基础原理到自动驾驶 BEV 矢量化地图构建
开发语言·人工智能·经验分享·深度学习·机器学习·自动驾驶·transformer
周末也要写八哥2 分钟前
Java面试时,线程为什么不安全?
java·开发语言·面试
Rust研习社5 分钟前
Rust Clone 特征保姆级解读:显式复制到底怎么用?
开发语言·后端·rust
Albert Edison6 分钟前
【RabbitMQ】七种工作模式
java·开发语言·分布式·rabbitmq
小旭952710 分钟前
SpringBoot 项目实战:ECharts 数据可视化 + POI Excel 报表导出完整版教程
java·spring boot·后端·信息可视化·echarts
咸鱼翻身小阿橙11 分钟前
QT总结-P2
开发语言·qt
We་ct11 分钟前
JS手撕:手写Koa中间件与Promise核心特性
开发语言·前端·javascript·中间件·node.js·koa·co
程序员老邢12 分钟前
【技术底稿 13】内网 Milvus 2.3.0 向量数据库全流程部署(商助慧 AI 底座,Attu 可视化)
java·数据库·人工智能·ai·语言模型·milvus
YXWik614 分钟前
Langchain4j(5)RAG之多格式文档加载(PDF / Word / TXT / 批量文件夹)
java