您好,登錄后才能下訂單哦!
在C++中,異常處理是一種處理運行時錯誤的方法
<iostream>
和<exception>
頭文件,分別用于輸入輸出流和異常處理。#include <iostream>
#include <exception>
try
塊:在可能出現異常的代碼段周圍使用try
塊。將可能拋出異常的代碼放在try
塊內。try {
// 可能出現異常的代碼
}
catch
塊:在try
塊之后使用一個或多個catch
塊來捕獲和處理異常。每個catch
塊都應該處理特定類型的異常。try {
// 可能出現異常的代碼
} catch (const std::exception& e) {
// 處理標準異常類型
} catch (const std::runtime_error& e) {
// 處理運行時錯誤
} catch (...) {
// 處理其他未知異常
}
std::exception
或其派生類,并重寫what()
方法。class CustomException : public std::exception {
public:
const char* what() const noexcept override {
return "自定義異常信息";
}
};
throw
關鍵字拋出異常:在程序中遇到錯誤時,可以使用throw
關鍵字拋出一個異常。if (error_condition) {
throw CustomException();
}
catch
塊應該放在最后,以防止捕獲到派生自其他異常類型的異常。下面是一個完整的C++異常處理示例:
#include <iostream>
#include <exception>
class CustomException : public std::exception {
public:
const char* what() const noexcept override {
return "自定義異常信息";
}
};
int main() {
try {
// 可能出現異常的代碼
bool error_condition = true;
if (error_condition) {
throw CustomException();
}
} catch (const std::exception& e) {
std::cerr << "捕獲到標準異常: " << e.what() << std::endl;
} catch (const std::runtime_error& e) {
std::cerr << "捕獲到運行時錯誤: " << e.what() << std::endl;
} catch (const CustomException& e) {
std::cerr << "捕獲到自定義異常: " << e.what() << std::endl;
} catch (...) {
std::cerr << "捕獲到未知異常" << std::endl;
}
return 0;
}
在這個示例中,我們創建了一個自定義異常類CustomException
,并在main()
函數中使用try-catch
塊捕獲和處理異常。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。