C++標(biāo)準(zhǔn)異常類的測(cè)試方法

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

在C++中,標(biāo)準(zhǔn)異常類主要位于<exception>頭文件中,它們是std::exception及其派生類。要測(cè)試這些異常類,你可以創(chuàng)建一個(gè)簡(jiǎn)單的程序,嘗試拋出和捕獲這些異常。以下是一個(gè)簡(jiǎn)單的示例,展示了如何使用C++標(biāo)準(zhǔn)異常類:

#include <iostream>
#include <exception>

// 自定義異常類,繼承自std::exception
class MyException : public std::exception {
public:
    const char* what() const noexcept override {
        return "This is a custom exception";
    }
};

int main() {
    try {
        // 拋出一個(gè)標(biāo)準(zhǔn)異常
        throw std::runtime_error("This is a standard runtime error");
    } catch (const std::runtime_error& e) {
        std::cerr << "Caught standard runtime error: " << e.what() << std::endl;
    }

    try {
        // 拋出一個(gè)自定義異常
        throw MyException();
    } catch (const MyException& e) {
        std::cerr << "Caught custom exception: " << e.what() << std::endl;
    } catch (const std::exception& e) {
        std::cerr << "Caught a standard exception: " << e.what() << std::endl;
    } catch (...) {
        std::cerr << "Caught an unknown exception" << std::endl;
    }

    return 0;
}

在這個(gè)示例中,我們首先拋出一個(gè)std::runtime_error異常,然后捕獲并處理它。接下來(lái),我們拋出一個(gè)自定義的MyException異常,并捕獲并處理它。最后,我們還捕獲了一個(gè)未知的異常,以防萬(wàn)一。

編譯并運(yùn)行這個(gè)程序,你將看到以下輸出:

Caught standard runtime error: This is a standard runtime error
Caught custom exception: This is a custom exception

這個(gè)示例展示了如何使用C++標(biāo)準(zhǔn)異常類以及如何處理它們。你可以根據(jù)需要修改和擴(kuò)展這個(gè)示例,以測(cè)試其他標(biāo)準(zhǔn)異常類。

0