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