在C++中,異常處理是一種處理運行時錯誤的方法
throw
關鍵字用于引發(或拋出)異常。當程序遇到無法處理的錯誤或異常情況時,可以使用throw
語句拋出一個異常對象。異常對象通常是一個包含錯誤信息的類的實例。在C++中,標準異常類是從std::exception
類派生的。例如,拋出一個整數類型的異常:
int divide(int a, int b) {
if (b == 0) {
throw std::runtime_error("Division by zero");
}
return a / b;
}
在這個例子中,當除數為零時,我們拋出一個std::runtime_error
異常,其中包含錯誤信息。
catch
關鍵字用于捕獲和處理異常。在可能拋出異常的代碼塊之后,可以使用catch
語句來捕獲并處理異常。catch
語句通常與try
和throw
一起使用。例如,捕獲并處理上面示例中的異常:
int main() {
try {
int result = divide(10, 0);
std::cout << "Result: " << result << std::endl;
} catch (const std::runtime_error& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
在這個例子中,我們使用try
塊包含可能拋出異常的代碼。如果divide
函數拋出一個異常,程序將立即跳轉到與該異常類型匹配的catch
塊。在這個catch
塊中,我們可以處理異常,例如輸出錯誤信息。
總結一下,throw
用于拋出異常,而catch
用于捕獲和處理異常。通過使用這兩個關鍵字,我們可以編寫更健壯的C++程序,以處理運行時錯誤。