C++ 的標準異常處理主要依賴于 try
、catch
和 throw
這三個關鍵字。以下是一個簡單的示例,展示了如何使用這些關鍵字來處理異常:
#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) {
// 捕獲并處理特定類型的異常
std::cerr << "捕獲到異常: " << e.what() << std::endl;
} catch (...) {
// 捕獲并處理其他類型的異常
std::cerr << "捕獲到未知異常" << std::endl;
}
return 0;
}
在這個示例中,我們首先使用 try
關鍵字包裹可能拋出異常的代碼。如果發生異常,程序將立即跳轉到相應的 catch
塊。我們可以使用 catch
關鍵字捕獲特定類型的異常,例如 std::runtime_error
,并處理它。如果沒有捕獲到特定類型的異常,程序將跳轉到捕獲所有其他類型異常的通用 catch
塊。
在 catch
塊中,我們可以使用 e.what()
方法獲取異常的描述信息。這有助于我們了解發生了什么問題,并采取適當的措施來處理異常。