c++catch和throw
时间: 2023-07-23 10:22:49 浏览: 84
C++编程异常处理中try和throw以及catch语句的用法
C++中的异常处理机制是通过`catch`和`throw`关键字实现的。`throw`用于抛出异常,`catch`用于捕获异常并处理它。
当程序运行到某个错误点时,可以使用`throw`语句抛出一个异常,例如:
```
throw std::runtime_error("Something went wrong!");
```
这里抛出了一个std::runtime_error类型的异常,异常信息为"Something went wrong!"。
在抛出异常后,程序会停止执行当前函数,并开始在当前函数的调用栈中寻找一个匹配的`catch`语句。如果找到了,就会执行该`catch`语句中的代码,例如:
```
try {
// Some code that might throw an exception
} catch (const std::exception& e) {
std::cerr << "Caught exception: " << e.what() << std::endl;
}
```
这里使用`try`包裹了一段可能抛出异常的代码,`catch`语句中捕获了`std::exception`类型的异常,并打印出异常信息。
需要注意的是,在`catch`语句中,通常应该使用引用类型来捕获异常,以避免拷贝构造函数的开销,并且应该尽可能地使用基类`std::exception`来捕获异常,以便处理任何类型的异常。
阅读全文