亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++標準異常類與自定義異常

c++
小樊
81
2024-11-08 22:59:27
欄目: 編程語言

C++ 標準異常類主要包括 std::exception 和其派生類

  1. std::exception:這是 C++ 標準庫中所有異常類的基類。它提供了一個名為 what() 的虛函數,用于返回異常的描述信息。通常,我們可以通過捕獲 std::exception 類型的異常來處理所有標準異常。
#include <iostream>
#include <exception>

int main() {
    try {
        throw std::runtime_error("An error occurred");
    } catch (const std::exception& e) {
        std::cerr << "Caught exception: " << e.what() << std::endl;
    }
    return 0;
}
  1. std::runtime_error:這是一個派生自 std::exception 的異常類,用于表示運行時錯誤。它接受一個字符串參數作為異常的描述信息。
#include <iostream>
#include <stdexcept>

int main() {
    try {
        throw std::runtime_error("An error occurred");
    } catch (const std::runtime_error& e) {
        std::cerr << "Caught runtime_error: " << e.what() << std::endl;
    }
    return 0;
}
  1. std::out_of_range:這是一個派生自 std::runtime_error 的異常類,用于表示訪問數組或其他容器時越界的情況。
#include <iostream>
#include <vector>
#include <stdexcept>

int main() {
    std::vector<int> vec = {1, 2, 3};

    try {
        std::cout << vec[3] << std::endl;
    } catch (const std::out_of_range& e) {
        std::cerr << "Caught out_of_range: " << e.what() << std::endl;
    }
    return 0;
}

要創建自定義異常類,只需從 std::exception 或其他標準異常類派生一個新的類,并實現 what() 函數。例如:

#include <iostream>
#include <exception>

class MyCustomException : public std::exception {
public:
    const char* what() const noexcept override {
        return "My custom exception occurred";
    }
};

int main() {
    try {
        throw MyCustomException();
    } catch (const MyCustomException& e) {
        std::cerr << "Caught custom exception: " << e.what() << std::endl;
    }
    return 0;
}

在這個例子中,我們創建了一個名為 MyCustomException 的自定義異常類,它繼承自 std::exception 并重寫了 what() 函數。在主函數中,我們拋出了一個 MyCustomException 類型的異常,并在 catch 塊中捕獲并處理它。

0
姜堰市| 长沙县| 伊春市| 奇台县| 霍林郭勒市| 上饶县| 平邑县| 永安市| 平谷区| 吐鲁番市| 左贡县| 江北区| 来凤县| 新巴尔虎右旗| 阿瓦提县| 新余市| 吴江市| 嘉禾县| 北宁市| 西丰县| 龙口市| 高邮市| 始兴县| 庄浪县| 城市| 道孚县| 疏附县| 五台县| 庄河市| 讷河市| 南平市| 达尔| 湖北省| 疏勒县| 泽库县| 夏津县| 石泉县| 阜新| 沅陵县| 汉源县| 大渡口区|