在C++中,异常处理是通过try
、catch
和throw
关键字实现的。当程序遇到无法处理的错误时,可以使用throw
关键字抛出一个异常。try
块包含可能抛出异常的代码,而catch
块用于捕获和处理异常。当try
块中的代码抛出异常时,程序的执行将立即跳转到与该异常类型匹配的catch
块。
以下是一个简单的C++异常处理示例:
#include <iostream>
#include <stdexcept>
int main() {
try {
int denominator = 0;
if (denominator == 0) {
throw std::runtime_error("Division by zero is not allowed.");
}
int result = 10 / denominator;
std::cout << "Result: " << result << std::endl;
} catch (const std::runtime_error& e) {
std::cerr << "Error: " << e.what() << std::endl;
} catch (...) {
std::cerr << "Unknown error occurred." << std::endl;
}
return 0;
}
在这个示例中,我们尝试执行一个除以零的操作,这是一个异常情况。当遇到这种情况时,我们抛出一个std::runtime_error
异常,并在catch
块中捕获和处理它。如果抛出其他类型的异常,我们将使用默认的catch
块来捕获和处理未知异常。