中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

rust anyhow能捕獲嗎

小樊
81
2024-11-20 06:58:10
欄目: 編程語言

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_filedivide 函數中可能發生的錯誤。如果發生錯誤,? 操作符會立即將錯誤傳播給 main 函數,并返回一個 Err 變體。這樣,我們可以輕松地處理錯誤并向用戶提供有關錯誤的詳細信息。

0
闵行区| 庆城县| 神农架林区| 铅山县| 高陵县| 志丹县| 祥云县| 遵化市| 沂源县| 大港区| 汨罗市| 准格尔旗| 雷州市| 奈曼旗| 惠来县| 西昌市| 临武县| 韩城市| 社会| 宣城市| 邵东县| 平舆县| 张北县| 宽甸| 双鸭山市| 扬中市| 襄垣县| 泰来县| 盘锦市| 瓦房店市| 栾城县| 宁夏| 基隆市| 军事| 蓬溪县| 余干县| 中超| 南陵县| 平昌县| 佛教| 山东省|