在C++中,異常處理是通過關鍵字try、catch和throw實現的。這些關鍵字允許你捕獲和處理程序運行時出現的錯誤或異常情況。以下是一個簡單的示例,展示了如何在C++中使用異常處理:
#include <iostream>
#include <stdexcept>
int main() {
int a = 10;
int b = 0;
int result;
try {
if (b == 0) {
throw std::runtime_error("除數不能為0");
}
result = a / b;
std::cout << "結果是: " << result << std::endl;
} catch (const std::runtime_error& e) {
std::cerr << "捕獲到異常: " << e.what() << std::endl;
}
return 0;
}
在這個示例中,我們嘗試執行一個除法操作。如果除數為0,我們拋出一個std::runtime_error異常,并附帶一條描述性消息。try塊中的代碼是可能引發異常的代碼。如果在try塊中發生異常,程序將立即跳轉到與該異常類型匹配的catch塊。在這個例子中,我們捕獲了std::runtime_error類型的異常,并輸出異常消息。
你可以使用多個catch塊來捕獲不同類型的異常,并根據需要處理它們。例如:
try {
// 可能引發異常的代碼
} catch (const std::runtime_error& e) {
// 處理std::runtime_error類型的異常
} catch (const std::invalid_argument& e) {
// 處理std::invalid_argument類型的異常
} catch (const std::exception& e) {
// 處理其他std::exception類型的異常
} catch (...) {
// 處理所有其他未知類型的異常
}
注意,在C++中,異常處理主要用于處理運行時錯誤,而不是用于正常的程序流程控制。因此,在編寫代碼時,應盡量確保程序在正常情況下不會引發異常。