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

这两个缺一不可

相关推荐
【D'accumulation】10 分钟前
令牌主动失效机制范例(利用redis)注释分析
java·spring boot·redis·后端
小叶学C++16 分钟前
【C++】类与对象(下)
java·开发语言·c++
ac-er888817 分钟前
PHP“===”的意义
开发语言·php
2401_8543910820 分钟前
高效开发:SpringBoot网上租赁系统实现细节
java·spring boot·后端
Cikiss28 分钟前
微服务实战——SpringCache 整合 Redis
java·redis·后端·微服务
wxin_VXbishe29 分钟前
springboot合肥师范学院实习实训管理系统-计算机毕业设计源码31290
java·spring boot·python·spring·servlet·django·php
Cikiss30 分钟前
微服务实战——平台属性
java·数据库·后端·微服务
jk_10136 分钟前
MATLAB中decomposition函数用法
开发语言·算法·matlab
weixin_4640780736 分钟前
C#串口温度读取
开发语言·c#
无敌の星仔39 分钟前
一个月学会Java 第2天 认识类与对象
java·开发语言