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

溫馨提示×

覆蓋寫入在C++異常處理中的應用

c++
小樊
83
2024-09-06 08:39:10
欄目: 編程語言

在C++異常處理中,覆蓋寫入(overwrite)是指在拋出異常時,將一個異常對象覆蓋另一個異常對象

以下是一個使用覆蓋寫入的示例:

#include<iostream>
#include <stdexcept>

class CustomException : public std::runtime_error {
public:
    CustomException(const std::string& message) : std::runtime_error(message) {}
};

void function1() {
    try {
        throw std::runtime_error("Error in function1");
    } catch (std::runtime_error& e) {
        std::cout << "Caught exception in function1: " << e.what()<< std::endl;
        throw CustomException("Custom error in function1"); // 覆蓋寫入
    }
}

int main() {
    try {
        function1();
    } catch (CustomException& e) {
        std::cout << "Caught custom exception in main: " << e.what()<< std::endl;
    } catch (std::runtime_error& e) {
        std::cout << "Caught exception in main: " << e.what()<< std::endl;
    }
    return 0;
}

在這個示例中,function1() 函數首先拋出一個 std::runtime_error 異常。然后,在 catch 塊中,我們捕獲該異常并打印其消息。接下來,我們拋出一個 CustomException 異常,覆蓋之前拋出的異常。

main() 函數中,我們捕獲兩種類型的異常:CustomExceptionstd::runtime_error。由于我們在 function1() 中覆蓋了原始的 std::runtime_error 異常,因此在 main() 函數中只能捕獲到 CustomException 異常。如果我們沒有在 function1() 中覆蓋原始異常,那么在 main() 函數中也可以捕獲到 std::runtime_error 異常。

0
崇阳县| 虎林市| 灵台县| 吴忠市| 大渡口区| 弥渡县| 河源市| 东平县| 板桥市| 德清县| 江安县| 历史| 垦利县| 永兴县| 宣威市| 离岛区| 余姚市| 子洲县| 漳平市| 衡南县| 余干县| 彭泽县| 黑山县| 虹口区| 丰宁| 合山市| 巴南区| 宜丰县| 霍林郭勒市| 文安县| 潞西市| 上杭县| 高尔夫| 翁源县| 大庆市| 乐至县| 泰州市| 井研县| 区。| 通化县| 高青县|