c++中 throw 是抛出异常吗
时间: 2024-04-13 18:30:29 浏览: 11
是的,在C++中,`throw`关键字用于抛出异常。当某个条件不满足或发生错误时,你可以使用`throw`来抛出异常。抛出的异常可以被上层调用栈中的异常处理程序捕获和处理。
以下是一个示例代码:
```cpp
#include <iostream>
void divide(int dividend, int divisor) {
if (divisor == 0) {
throw std::runtime_error("Divisor cannot be zero");
}
int quotient = dividend / divisor;
std::cout << "Quotient: " << quotient << std::endl;
}
int main() {
try {
divide(10, 0);
}
catch (const std::exception& e) {
std::cout << "Exception caught: " << e.what() << std::endl;
}
return 0;
}
```
在这个示例中,`divide`函数接受两个整数作为参数,并尝试将被除数除以除数。如果除数为零,则使用`throw`抛出了一个`std::runtime_error`类型的异常。在`main`函数中,我们使用`try-catch`块来捕获并处理异常。如果有异常被抛出,程序会打印出异常信息。
请注意,当抛出异常时,程序会跳转到最近的异常处理程序(使用`catch`块捕获)。如果没有合适的异常处理程序,程序可能会终止并显示未处理的异常信息。因此,在编写使用`throw`的代码时,通常需要确保异常能够被适当地捕获和处理。