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
塊。我們為可能引發的特定異常類型(如std::runtime_error
)創建了一個catch
塊,并為其他未知類型的異常創建了另一個catch
塊。
在catch
塊中,我們可以訪問異常對象(如e
),并使用其提供的方法(如what()
)來獲取異常信息。這樣,我們可以根據異常類型采取適當的措施來處理異常。