在C++中,處理異常情況通常使用異常處理機制。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;
}
在這個示例中,我們嘗試執行一個可能引發異常的操作(除以0)。如果發生異常,我們使用throw
關鍵字拋出一個std::runtime_error
異常。然后,我們使用try
和catch
塊捕獲并處理異常。catch
塊可以捕獲特定類型的異常(如std::runtime_error
),也可以捕獲所有類型的異常(使用省略號...
)。
當異常被捕獲時,程序的執行會立即跳轉到相應的catch
塊,異常對象作為參數傳遞給catch
塊。我們可以使用異常對象的what()
成員函數獲取異常的描述信息。