在C++中,錯誤處理通常使用異常處理機制。C++標準庫提供了<exception>
頭文件,其中包含了一些基本的異常類,如std::exception
、std::runtime_error
等。你可以根據需要自定義異常類來表示特定的錯誤。
以下是一個簡單的示例,展示了如何在C++中使用異常處理機制進行錯誤處理:
#include <iostream>
#include <stdexcept>
// 自定義異常類
class MyException : public std::runtime_error {
public:
explicit MyException(const std::string& message)
: std::runtime_error(message) {}
};
// 一個可能拋出異常的函數
int divide(int a, int b) {
if (b == 0) {
throw MyException("Division by zero is not allowed.");
}
return a / b;
}
int main() {
try {
int result = divide(10, 0); // 這里會拋出異常
std::cout << "Result: " << result << std::endl;
} catch (const MyException& e) {
std::cerr << "Error: " << e.what() << std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
} catch (...) {
std::cerr << "Unknown error occurred." << std::endl;
}
return 0;
}
在這個示例中,我們定義了一個自定義異常類MyException
,它繼承自std::runtime_error
。在divide
函數中,我們檢查除數是否為0,如果是,則拋出MyException
異常。在main
函數中,我們使用try-catch
塊捕獲異常,并在catch
塊中處理異常。
注意,當拋出異常時,程序的執行會立即跳轉到相應的catch
塊。因此,在try
塊中,你應該只包含可能拋出異常的代碼。在catch
塊中,你可以根據需要處理異常,例如記錄錯誤信息、清理資源等。