中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C++標準異常類的創建方法

c++
小樊
82
2024-11-08 22:56:25
欄目: 編程語言

在C++中,標準異常類是從std::exception類派生出來的。要創建自定義異常類,你需要遵循以下步驟:

  1. 包含頭文件:首先,需要包含<exception>頭文件,以便使用std::exception類。
#include <exception>
  1. 創建基類:創建一個從std::exception派生的新類,作為你的自定義異常類的基類。
class MyException : public std::exception {
    // ...
};
  1. 添加構造函數:在自定義異常類中,可以添加一個或多個構造函數。至少,你應該提供一個接受const char*參數的構造函數,以便將錯誤信息傳遞給基類std::exception的構造函數。
class MyException : public std::exception {
public:
    // 默認構造函數
    MyException() noexcept : message("MyException occurred") {}

    // 接受錯誤信息的構造函數
    explicit MyException(const char* message) noexcept : message(message) {}

    // 接受格式化字符串的構造函數
    explicit MyException(const char* format, ...) noexcept {
        va_list args;
        va_start(args, format);
        int size = std::vsnprintf(nullptr, 0, format, args);
        va_end(args);

        std::vector<char> buffer(size + 1);
        va_start(args, format);
        std::vsnprintf(buffer.data(), buffer.size(), format, args);
        va_end(args);

        message = buffer.data();
    }

private:
    const char* message;
};
  1. 使用自定義異常類:現在你可以在代碼中拋出和使用你的自定義異常類。
int main() {
    try {
        throw MyException("An error occurred");
    } catch (const MyException& e) {
        std::cerr << "Caught exception: " << e.what() << std::endl;
    }

    return 0;
}

這是一個簡單的自定義異常類示例。你可以根據需要擴展它,例如添加其他構造函數、成員變量或方法。

0
承德县| 武邑县| 陆丰市| 霍州市| 民县| 宣城市| 博爱县| 连江县| 长乐市| 拜城县| 广宗县| 桃江县| 和顺县| 名山县| 襄汾县| 老河口市| 河北区| 班戈县| 农安县| 安陆市| 罗平县| 关岭| 辽源市| 磴口县| 宁都县| 大悟县| 宝丰县| 临澧县| 淄博市| 蕲春县| 蓬莱市| 沅江市| 铁岭县| 鄯善县| 奇台县| 大足县| 防城港市| 商水县| 阜南县| 台湾省| 安乡县|