以下是一個(gè)簡(jiǎn)單的C++標(biāo)準(zhǔn)異常類的示例代碼:
#include <iostream>
#include <exception>
// 自定義異常類
class MyException : public std::exception {
public:
// 構(gòu)造函數(shù)
MyException(const char* message) : msg_(message) {}
// 重寫(xiě)what()函數(shù),返回異常信息
const char* what() const noexcept override {
return msg_;
}
private:
std::string msg_;
};
int main() {
try {
// 拋出自定義異常
throw MyException("This is a custom exception.");
} catch (const MyException& e) {
// 捕獲并處理自定義異常
std::cerr << "Caught exception: " << e.what() << std::endl;
} catch (const std::exception& e) {
// 捕獲并處理標(biāo)準(zhǔn)異常
std::cerr << "Caught standard exception: " << e.what() << std::endl;
} catch (...) {
// 捕獲并處理其他未知異常
std::cerr << "Caught an unknown exception." << std::endl;
}
return 0;
}
在這個(gè)示例中,我們定義了一個(gè)名為MyException
的自定義異常類,它繼承自std::exception
。我們重寫(xiě)了what()
函數(shù),以便在捕獲異常時(shí)返回自定義的錯(cuò)誤消息。
在main()
函數(shù)中,我們使用try
塊來(lái)調(diào)用可能拋出異常的代碼。在這個(gè)例子中,我們拋出了一個(gè)MyException
異常。然后,我們使用catch
塊來(lái)捕獲并處理這個(gè)異常。我們分別為自定義異常和標(biāo)準(zhǔn)異常提供了catch
塊,并為其他未知異常提供了一個(gè)通用的catch
塊。