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

溫馨提示×

C++標準異常類的處理方式

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

C++ 標準異常類主要繼承自 std::exception

  1. 使用 try-catch 語句塊捕獲異常:

在可能拋出異常的代碼段周圍使用 try 語句塊,然后在 catch 語句塊中處理異常。例如:

#include <iostream>
#include <stdexcept>

int main() {
    try {
        int denominator = 0;
        if (denominator == 0) {
            throw std::runtime_error("Division by zero");
        }
        int result = 10 / denominator;
        std::cout << "Result: " << result << std::endl;
    } catch (const std::runtime_error& e) {
        std::cerr << "Error: " << e.what() << std::endl;
    }
    return 0;
}

在這個例子中,我們嘗試除以零,這會拋出一個 std::runtime_error 異常。我們使用 catch 語句塊捕獲這個異常,并輸出錯誤信息。

  1. 使用 throw 語句拋出異常:

在程序中,你可以使用 throw 語句拋出一個異常對象。例如:

#include <iostream>
#include <stdexcept>

int main() {
    try {
        int denominator = 0;
        if (denominator == 0) {
            throw std::runtime_error("Division by zero");
        }
        int result = 10 / denominator;
        std::cout << "Result: " << result << std::endl;
    } catch (const std::runtime_error& e) {
        std::cerr << "Error: " << e.what() << std::endl;
    }
    return 0;
}

在這個例子中,我們在 if 語句中檢查除數是否為零。如果是零,我們使用 throw 語句拋出一個 std::runtime_error 異常。

  1. 使用 std::exception 的派生類:

你可以創建自己的異常類,繼承自 std::exception 或其子類(如 std::runtime_error),并在其中添加額外的錯誤信息。例如:

#include <iostream>
#include <stdexcept>

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

int main() {
    try {
        int denominator = 0;
        if (denominator == 0) {
            throw DivisionError("Division by zero");
        }
        int result = 10 / denominator;
        std::cout << "Result: " << result << std::endl;
    } catch (const DivisionError& e) {
        std::cerr << "Error: " << e.what() << std::endl;
    }
    return 0;
}

在這個例子中,我們創建了一個名為 DivisionError 的自定義異常類,繼承自 std::runtime_error。當發生除以零的情況時,我們拋出這個自定義異常。在 catch 語句塊中,我們捕獲并處理這個自定義異常。

0
绥滨县| 滨海县| 康马县| 葵青区| 阿克陶县| 朝阳市| 梅河口市| 临邑县| 遂宁市| 福贡县| 望都县| 黄冈市| 杭锦旗| 邵阳市| 江达县| 金寨县| 中山市| 宁化县| 镇平县| 林州市| 东兰县| 普宁市| 昭平县| 徐闻县| 吉水县| 湖州市| 延庆县| 澎湖县| 石首市| 苏尼特右旗| 闻喜县| 平昌县| 乌拉特前旗| 左权县| 卢氏县| 会宁县| 南部县| 滦平县| 利川市| 甘泉县| 阿克苏市|