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;
}
在这个示例中,我们首先使用try
关键字包裹可能引发异常的代码。如果发生异常,程序将立即跳转到相应的catch
块。我们为可能引发的特定异常类型(如std::runtime_error
)创建了一个catch
块,并为其他未知类型的异常创建了另一个catch
块。
在catch
块中,我们可以访问异常对象(如e
),并使用其提供的方法(如what()
)来获取异常信息。这样,我们可以根据异常类型采取适当的措施来处理异常。