温馨提示×

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

c++
小樊
81
2024-11-08 21:03:22
栏目: 编程语言

在 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 异常。这样,我们可以针对不同类型的异常采取不同的处理措施。如果没有异常发生,程序将正常执行。

0