C++输出流如何处理异常

c++
801
2024/11/8 21:31:09
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在 C++ 中,iostream 库提供了处理异常的机制。当程序遇到无法处理的错误时,可以通过抛出和捕获异常来处理这些错误。以下是一个简单的示例,展示了如何使用 iostream 库处理异常:

#include <iostream>
#include <stdexcept>

int main() {
    try {
        // 尝试执行可能引发异常的操作
        int result = divide(10, 0);
        std::cout << "Result: " << result << std::endl;
    } catch (const std::runtime_error& e) {
        // 捕获并处理 runtime_error 异常
        std::cerr << "Error: " << e.what() << std::endl;
    } catch (const std::exception& e) {
        // 捕获并处理其他标准异常
        std::cerr << "Error: " << e.what() << std::endl;
    } catch (...) {
        // 捕获并处理所有其他类型的异常
        std::cerr << "Unknown Error occurred" << std::endl;
    }

    return 0;
}

int divide(int a, int b) {
    if (b == 0) {
        // 如果除数为零,抛出一个 runtime_error 异常
        throw std::runtime_error("Division by zero is not allowed.");
    }
    return a / b;
}

在这个示例中,我们定义了一个名为 divide 的函数,该函数执行除法操作。如果除数为零,我们抛出一个 std::runtime_error 异常。在 main 函数中,我们使用 try 块来尝试执行可能引发异常的操作。如果发生异常,程序将跳转到相应的 catch 块来处理异常。

在这个例子中,我们捕获了 std::runtime_error 异常以及所有其他类型的 std::exception 异常。这样,我们可以针对不同类型的异常采取不同的处理措施。如果没有异常发生,程序将正常执行。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: C++ Primer PDF的更新频率是怎样的