在C++中,異常處理是通過關鍵字try
、catch
和throw
實現的。當程序遇到錯誤時,可以拋出一個異常,然后在適當的地方捕獲并處理它。這種機制允許程序在出現錯誤時優雅地恢復,而不是崩潰。
下面是一個簡單的C++異常處理示例:
#include <iostream>
#include <stdexcept>
int main() {
try {
// 檢查某種條件,如果滿足則拋出異常
bool error_condition = true;
if (error_condition) {
throw std::runtime_error("An error occurred");
}
// 其他正常代碼
std::cout << "No errors!" << std::endl;
} catch (const std::runtime_error& e) {
// 捕獲并處理異常
std::cerr << "Error: " << e.what() << std::endl;
} catch (...) {
// 捕獲所有其他類型的異常
std::cerr << "Unknown error occurred" << std::endl;
}
return 0;
}
在這個示例中,我們使用try
塊包裹可能拋出異常的代碼。如果error_condition
為true
,我們拋出一個std::runtime_error
異常。然后,我們使用catch
塊捕獲并處理異常。在這個例子中,我們捕獲了std::runtime_error
類型的異常,并打印出錯誤信息。我們還添加了一個通用的catch
塊來捕獲所有其他類型的異常。
在Linux下編譯和運行這個程序,你可以使用以下命令:
g++ -o exception_example exception_example.cpp
./exception_example
這將輸出:
Error: An error occurred
注意:在實際應用中,你應該盡量捕獲特定類型的異常,而不是使用通用的catch (...)
塊。這樣可以更好地處理不同類型的錯誤,并提供更詳細的錯誤信息。