fn process_file() -> Result<(), MyError> {
// 这里假设先模拟产生一个错误,实际应用中应该是在函数内部处理逻辑时产生错误
let err = MyError::FileNotFound;
match err {
MyError::FileNotFound => {
// 尝试创建文件
println!("尝试创建文件");
// 这里创建文件成功就返回 Ok(()),失败返回对应的错误,这里简单返回 Ok(()) 模拟成功
Ok(())
}
MyError::PermissionDenied => {
// 打印提示信息并尝试请求权限
println!("权限不足,尝试请求权限");
// 这里请求权限成功就返回 Ok(()),失败返回对应的错误,这里简单返回 Ok(()) 模拟成功
Ok(())
}
MyError::ParseError(err_str) => {
// 打印具体的错误字符串
println!("解析错误: {}", err_str);
Err(MyError::ParseError(err_str))
}
}
}
enum MyError {
FileNotFound,
PermissionDenied,
ParseError(String)
}