声明一个异常类Cexception,有成员函数Reason(),用来显示异常的类型,在子函数中触发异常,在主程序中处理异常,观察程序的执行流程。
时间: 2024-02-20 11:02:12 浏览: 36
好的,下面是一个简单的实现:
```c++
#include <iostream>
using namespace std;
class Cexception {
public:
Cexception(string reason) : m_reason(reason) {}
void Reason() { cout << "Exception: " << m_reason << endl; }
private:
string m_reason;
};
void func() {
throw Cexception("Something went wrong!");
}
int main() {
try {
func();
}
catch(Cexception& e) {
e.Reason();
}
return 0;
}
```
在上面的代码中,我们定义了一个异常类 `Cexception`,它包含一个成员函数 `Reason()` 用于显示异常类型。在 `func()` 函数中,我们抛出了一个 `Cexception` 类型的异常。在主程序中,我们使用 `try-catch` 块来捕获异常,并调用 `Reason()` 函数来输出异常信息。
当程序运行时,因为 `func()` 函数抛出了一个异常,所以程序会进入 `catch` 块中,并输出异常信息:
```
Exception: Something went wrong!
```
这就是异常处理的基本流程。当程序遇到异常情况时,它会抛出一个异常,然后程序会在 `try` 块中寻找与该异常类型匹配的 `catch` 块,并执行其中的代码。如果找不到匹配的 `catch` 块,程序就会崩溃。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)