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

溫馨提示×

C++異常處理機制的捕獲方式

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

C++異常處理機制提供了兩種主要的捕獲方式:catch塊和try-catch語句。以下是這兩種方式的簡要說明和示例:

  1. catch塊:catch塊用于捕獲和處理特定類型的異常。它緊跟在try塊之后,并指定要捕獲的異常類型。當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;
}
  1. try-catch語句:try-catch語句是一種更靈活的方式來捕獲和處理異常。它允許你在try塊中捕獲多種類型的異常,并在不同的catch塊中處理它們。此外,你還可以在一個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;
    } catch (const std::exception& e) {
        std::cerr << "Unexpected error: " << e.what() << std::endl;
    } catch (...) {
        std::cerr << "Unknown error occurred" << std::endl;
    }
    return 0;
}

在這個示例中,我們捕獲了std::runtime_error類型的異常,并處理了它。我們還捕獲了所有其他類型的std::exception異常和一個通用的...異常,以便處理未知的異常情況。

0
宁蒗| 萨迦县| 南陵县| 肥东县| 绵竹市| 镇安县| 通州区| 尼勒克县| 栾城县| 白玉县| 益阳市| 桐城市| 弥勒县| 全椒县| 平利县| 岢岚县| 扶绥县| 南投县| 阿鲁科尔沁旗| 通山县| 拉孜县| 汾西县| 无为县| 高台县| 台湾省| 介休市| 深泽县| 康保县| 晋宁县| 武穴市| 绥滨县| 格尔木市| 金塔县| 全州县| 寿光市| 砚山县| 万安县| 唐海县| 界首市| 高尔夫| 威海市|