91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

覆蓋寫入在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
克东县| 偃师市| 清徐县| 兰西县| 富源县| 鄱阳县| 河津市| 积石山| 卢氏县| 伊金霍洛旗| 武安市| 来宾市| 文登市| 巨鹿县| 长岭县| 丹阳市| 秀山| 同仁县| 海丰县| 洮南市| 临洮县| 威远县| 巩义市| 永州市| 呼图壁县| 满洲里市| 株洲县| 图木舒克市| 高淳县| 赤峰市| 阳高县| 莫力| 南江县| 登封市| 凤凰县| 洛宁县| 衡阳市| 田阳县| 南靖县| 密云县| 北流市|