2023年11月29日发(作者:)
c++异常处理机制和常用方法
C++ 异常处理机制是一种处理程序错误的标准方法,它允许程序
员在程序出现异常情况时进行处理。异常处理机制通过抛出异常、捕
获异常、传递异常三个步骤来实现。
1. 抛出异常
当程序出现异常情况时,可以使用 `throw` 关键字来抛出一个
异常。例如:
```
throw std::runtime_error("Something went wrong!");
```
这里抛出了一个 `std::runtime_error` 类型的异常,其中包含
了一个字符串描述信息。
2. 捕获异常
当程序抛出异常后,可以使用 `try-catch` 块来处理异常。例
如:
```
try {
// some code that may throw an exception
} catch (const std::exception& e) {
std::cerr << "Exception caught: " << () << std::endl;
}
```
这里使用 `try` 关键字开始一个代码块,该代码块可能会抛出
异常。如果抛出异常,则 `catch` 块中的代码将被执行。`catch` 块
中的参数指定了要捕获的异常类型,这里使用了 `const
std::exception&` 表示捕获所有继承自 `std::exception` 的异常。
`()` 方法返回异常描述信息。
3. 传递异常
当一个函数抛出异常时,它可以选择不处理该异常并将其传递给
调用该函数的代码。例如:
```
void foo() {
throw std::runtime_error("Something went wrong!");
}
int main() {
try {
foo();
} catch (const std::exception& e) {
std::cerr << "Exception caught: " << () << std::endl;
}
}
```
这里 `foo()` 函数抛出了一个异常,但它没有在函数中处理该
异常。当 `foo()` 被调用时,异常被传递给了 `main()` 函数中的
`catch` 块进行处理。
常用的异常类型包括 `std::exception`(所有标准异常类的基
类)、`std::runtime_error`(表示运行时错误)、`std::logic_error`
(表示逻辑错误)等。除了使用标准异常类之外,程序员还可以自定
义异常类来表示特定的错误情况。


发布评论