溫馨提示×

C++輸出流如何處理異常

c++
小樊
81
2024-11-08 21:03:22
欄目: 編程語言

在 C++ 中,iostream 庫提供了處理異常的機制。當程序遇到無法處理的錯誤時,可以通過拋出和捕獲異常來處理這些錯誤。以下是一個簡單的示例,展示了如何使用 iostream 庫處理異常:

#include <iostream>
#include <stdexcept>

int main() {
    try {
        // 嘗試執(zhí)行可能引發(fā)異常的操作
        int result = divide(10, 0);
        std::cout << "Result: " << result << std::endl;
    } catch (const std::runtime_error& e) {
        // 捕獲并處理 runtime_error 異常
        std::cerr << "Error: " << e.what() << std::endl;
    } catch (const std::exception& e) {
        // 捕獲并處理其他標準異常
        std::cerr << "Error: " << e.what() << std::endl;
    } catch (...) {
        // 捕獲并處理所有其他類型的異常
        std::cerr << "Unknown Error occurred" << std::endl;
    }

    return 0;
}

int divide(int a, int b) {
    if (b == 0) {
        // 如果除數為零,拋出一個 runtime_error 異常
        throw std::runtime_error("Division by zero is not allowed.");
    }
    return a / b;
}

在這個示例中,我們定義了一個名為 divide 的函數,該函數執(zhí)行除法操作。如果除數為零,我們拋出一個 std::runtime_error 異常。在 main 函數中,我們使用 try 塊來嘗試執(zhí)行可能引發(fā)異常的操作。如果發(fā)生異常,程序將跳轉到相應的 catch 塊來處理異常。

在這個例子中,我們捕獲了 std::runtime_error 異常以及所有其他類型的 std::exception 異常。這樣,我們可以針對不同類型的異常采取不同的處理措施。如果沒有異常發(fā)生,程序將正常執(zhí)行。

0