在C++中,處理異常情況通常使用 try-catch 語句塊。當程序可能拋出異常時,將其放在 try 塊中。如果 try 塊中的代碼拋出異常,程序將立即跳轉到與該異常類型匹配的 catch 塊中。以下是一個簡單的示例:
#include <iostream>
#include <stdexcept>
int main() {
try {
// 可能拋出異常的代碼
int denominator = 0;
if (denominator == 0) {
throw std::runtime_error("除數不能為0");
}
int result = 10 / denominator;
std::cout << "結果: " << result << std::endl;
} catch (const std::runtime_error& e) {
// 處理 runtime_error 異常
std::cerr << "捕獲到異常: " << e.what() << std::endl;
} catch (const std::exception& e) {
// 處理其他標準異常
std::cerr << "捕獲到異常: " << e.what() << std::endl;
} catch (...) {
// 處理未知異常
std::cerr << "捕獲到未知異常" << std::endl;
}
return 0;
}
在這個示例中,我們嘗試執行除法操作,如果除數為0,我們拋出一個 runtime_error 異常。然后,我們使用 catch 塊來捕獲和處理這個異常。注意,catch 塊應該按照從最具體到最一般的順序排列,以便更有效地處理異常。