阅读量:4
anyhow 是一个 Rust 库,用于简化错误处理。它可以捕获和处理各种错误,包括标准库错误、自定义错误等。要使用 anyhow 捕获错误,你需要在代码中使用 Result 类型,并在可能出错的地方使用 ? 操作符。如果发生错误,? 操作符会立即将错误传播给上层调用者,同时返回一个 Err 变体。
下面是一个简单的示例,展示了如何使用 anyhow 捕获和处理错误:
use anyhow::Result;
fn main() -> Result<()> {
let file_content = read_file("non_existent_file.txt")?;
println!("File content: {}", file_content);
let result = divide(10, 0)?;
println!("Result: {}", result);
Ok(())
}
fn read_file(file_name: &str) -> Result<String> {
std::fs::read_to_string(file_name).map_err(|err| anyhow::format_err!("Failed to read file {}: {}", file_name, err))
}
fn divide(a: u32, b: u32) -> Result<u32> {
if b == 0 {
Err(anyhow::format_err!("Division by zero"))
} else {
Ok(a / b)
}
}
在这个示例中,我们使用 ? 操作符捕获了 read_file 和 divide 函数中可能发生的错误。如果发生错误,? 操作符会立即将错误传播给 main 函数,并返回一个 Err 变体。这样,我们可以轻松地处理错误并向用户提供有关错误的详细信息。
以上就是关于“rust anyhow能捕获吗”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm