在C++中,处理异常情况通常使用异常处理机制。C++标准库提供了try
、catch
和throw
关键字来处理异常。以下是一个简单的示例,展示了如何使用这些关键字处理异常:
#include <iostream>
#include <stdexcept>
int main() {
try {
// 尝试执行可能引发异常的代码
int denominator = 0;
if (denominator == 0) {
throw std::runtime_error("除数不能为0");
}
int result = 10 / denominator;
std::cout << "结果: " << result << std::endl;
} catch (const std::runtime_error& e) {
// 捕获并处理异常
std::cerr << "发生异常: " << e.what() << std::endl;
} catch (...) {
// 捕获并处理其他类型的异常
std::cerr << "发生未知异常" << std::endl;
}
return 0;
}
在这个示例中,我们尝试执行一个可能引发异常的操作(除以0)。如果发生异常,我们使用throw
关键字抛出一个std::runtime_error
异常。然后,我们使用try
和catch
块捕获并处理异常。catch
块可以捕获特定类型的异常(如std::runtime_error
),也可以捕获所有类型的异常(使用省略号...
)。
当异常被捕获时,程序的执行会立即跳转到相应的catch
块,异常对象作为参数传递给catch
块。我们可以使用异常对象的what()
成员函数获取异常的描述信息。