亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

rust anyhow如何處理錯誤

小樊
81
2024-11-20 07:04:10
欄目: 編程語言

anyhow 是一個 Rust 庫,用于簡化錯誤處理。它提供了一個 Result 類型,可以表示成功或失敗的結果。當你在代碼中使用 anyhow 時,你可以使用 ? 運算符來傳播錯誤。如果 ResultErr,則會立即返回錯誤;如果是 Ok,則會解包值并繼續執行。

下面是一個簡單的示例,展示了如何使用 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::anyhow!("Failed to read file {}: {}", file_name, err)
    })
}

fn divide(a: i32, b: i32) -> Result<i32> {
    if b == 0 {
        Err(anyhow::anyhow!("Division by zero"))
    } else {
        Ok(a / b)
    }
}

在這個示例中,我們定義了三個函數:mainread_filedividemain 函數調用 read_filedivide 函數,并使用 ? 運算符處理錯誤。如果發生錯誤,anyhow 會生成一個描述性的錯誤消息,并立即返回。

read_file 函數嘗試讀取一個文件的內容。如果文件不存在或無法讀取,它會使用 map_err 將標準錯誤轉換為 anyhow::Error 類型,并添加一個描述性消息。

divide 函數執行除法操作。如果除數為零,它會返回一個錯誤,否則返回結果。

0
嘉荫县| 屏东市| 兴城市| 瑞昌市| 林州市| 商城县| 肃宁县| 永兴县| 离岛区| 县级市| 沂水县| 措美县| 济宁市| 吉木乃县| 永城市| 冀州市| 芦溪县| 淅川县| 古浪县| 金塔县| 河间市| 宽甸| 交口县| 九江市| 枞阳县| 邢台市| 新安县| 沭阳县| 富蕴县| 皋兰县| 嘉义县| 丽江市| 奎屯市| 建湖县| 包头市| 博兴县| 中江县| 绿春县| 文成县| 城口县| 顺平县|