在C++中,异常处理是一种处理运行时错误的方法
throw
关键字用于引发(或抛出)异常。当程序遇到无法处理的错误或异常情况时,可以使用throw
语句抛出一个异常对象。异常对象通常是一个包含错误信息的类的实例。在C++中,标准异常类是从std::exception
类派生的。例如,抛出一个整数类型的异常:
int divide(int a, int b) {
if (b == 0) {
throw std::runtime_error("Division by zero");
}
return a / b;
}
在这个例子中,当除数为零时,我们抛出一个std::runtime_error
异常,其中包含错误信息。
catch
关键字用于捕获和处理异常。在可能抛出异常的代码块之后,可以使用catch
语句来捕获并处理异常。catch
语句通常与try
和throw
一起使用。例如,捕获并处理上面示例中的异常:
int main() {
try {
int result = divide(10, 0);
std::cout << "Result: " << result << std::endl;
} catch (const std::runtime_error& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
在这个例子中,我们使用try
块包含可能抛出异常的代码。如果divide
函数抛出一个异常,程序将立即跳转到与该异常类型匹配的catch
块。在这个catch
块中,我们可以处理异常,例如输出错误信息。
总结一下,throw
用于抛出异常,而catch
用于捕获和处理异常。通过使用这两个关键字,我们可以编写更健壮的C++程序,以处理运行时错误。