在 Rust 中,anyhow
庫用于處理錯誤。如果你想在代碼中使用 anyhow
但忽略某些錯誤,可以使用 ?
操作符。?
操作符會自動將錯誤向上傳播,如果發生錯誤,它會立即返回錯誤信息。如果你想讓某個錯誤被忽略,可以使用 ignore
方法。
以下是一個使用 anyhow
的示例,展示了如何忽略某些錯誤:
use anyhow::{Context, Result};
fn main() -> Result<()> {
let _ = some_function()
.context("some_function failed")
.and_then(|result| {
if result == 0 {
Ok(())
} else {
// 忽略錯誤
Ok(())
}
});
Ok(())
}
fn some_function() -> i32 {
// 模擬一個可能失敗的函數
Err(anyhow!("an error occurred"))
}
在這個示例中,我們使用 context
方法為 some_function
添加了一個錯誤上下文。然后,我們使用 and_then
方法處理結果。如果結果等于 0,我們繼續執行;否則,我們使用 Ok(())
忽略錯誤。這樣,即使發生錯誤,程序也會繼續執行。