溫馨提示×

c++ example如何展示異常處理機制

c++
小樊
81
2024-09-27 18:14:45
欄目: 編程語言

在C++中,異常處理機制主要通過try、catchthrow這三個關(guān)鍵字來實現(xiàn)。下面是一個簡單的例子,展示了如何使用這些關(guān)鍵字來處理異常:

#include <iostream>
#include <stdexcept>

int main() {
    int num1 = 10;
    int num2 = 0;
    int result = 0;

    try {
        // 嘗試執(zhí)行可能會拋出異常的代碼
        if (num2 == 0) {
            throw std::runtime_error("除數(shù)不能為0");
        }
        result = num1 / num2;
    } catch (const std::runtime_error& e) {
        // 捕獲并處理特定類型的異常
        std::cerr << "捕獲到運行時錯誤: " << e.what() << std::endl;
    } catch (...) {
        // 捕獲所有類型的異常
        std::cerr << "捕獲到未知異常" << std::endl;
    }

    std::cout << "結(jié)果是: " << result << std::endl;

    return 0;
}

在這個例子中,我們嘗試執(zhí)行一個除法操作,但是除數(shù)為0,這會導(dǎo)致一個運行時錯誤。我們使用try塊來包裹可能會拋出異常的代碼。如果try塊中的代碼拋出了異常,程序會立即跳轉(zhuǎn)到相應(yīng)的catch塊中處理異常。

我們使用了兩個catch塊來處理異常。第一個catch塊捕獲并處理特定類型的異常,即std::runtime_error。第二個catch塊捕獲所有類型的異常,即...。這樣可以確保程序不會因為未處理的異常而意外終止。

catch塊中,我們可以使用e.what()方法來獲取異常的描述信息,并將其輸出到控制臺或者其他地方進行處理。

需要注意的是,我們在catch塊中并沒有重新拋出異常,因為在這個例子中,我們只是想要處理異常,而不是將異常繼續(xù)向上傳遞。如果你需要在catch塊中重新拋出異常,可以使用throw;語句來實現(xiàn)。

0