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

这两个缺一不可

相关推荐
重庆兔巴哥20 小时前
如何在Dev-C++中使用MinGW-w64编译器?
linux·开发语言·c++
魔道不误砍柴功20 小时前
Java Function 高级使用技巧:从工程实战中来
java·开发语言·python
三佛科技-1873661339720 小时前
LP3783A芯茂微5V2.1A低功耗原边反馈充电器芯片替代PL3378/C
c语言·开发语言
不知名。。。。。。。。20 小时前
仿muduo库实现高并发服务器----EventLoop与线程整合起来
java·开发语言·jvm
编程大师哥20 小时前
JAVA 集合框架进阶
java·开发语言
TechFind20 小时前
AI Agent 开发完整教程:从零到上线的实战指南
java·javascript
春日见20 小时前
车载系统中的CPU与内存监管
java·开发语言·驱动开发·docker·计算机外设
用户25656761334620 小时前
Android Input 系统事件分发机制深度解析
java
2501_9216494920 小时前
免费港股实时行情 API:功能、性能与接入指南
开发语言·后端·python·金融·restful
fengxin_rou20 小时前
黑马点评实战篇|第六篇:秒杀优化
java·开发语言·数据库·redis·分布式