在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)。如果發生異常,我們拋出一個std::runtime_error
異常,并在catch
塊中捕獲并處理它。我們可以捕獲特定類型的異常(如std::runtime_error
),也可以捕獲所有類型的異常(使用省略號...
)。
注意,為了避免程序在異常發生時終止,我們需要確保在可能引發異常的代碼周圍使用try
和catch
塊。此外,可以使用noexcept
關鍵字標記函數,以表明該函數不會拋出異常。但是,如果函數違反了此承諾,程序將立即終止。