C++標(biāo)準(zhǔn)異常類的示例代碼

c++
小樊
81
2024-11-08 23:07:25

以下是一個(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塊。

0