toml
thiserror = "2.0"
rs
use std::io::Read;
use std::{fs,io};
use thiserror::Error;
#[derive(Debug,Error)]
enum MyError{
#[error("")]
IoError(#[from] io::Error),
#[error("xxxxx in {0}")]
EmptyUserName(String),
}
fn read_username(path: &str) -> Result<String, MyError> {
let mut username = String::with_capacity(100);
fs::File::open(path)?.read_to_string(&mut username)?;
if username.is_empty() {
return Err(MyError::EmptyUserName(String::from(path)));
}
Ok(username)
}
fn main(){
match read_username("count.dat") {
Ok(user) => println!("xxx, {user}"),
Err(e) => println!("{e:?}")
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步