声明一个异常类cexception,有成员函数what(),用来显示异常的类型,在子函数中触发异常,在主程序中处理异常。
时间: 2023-04-28 21:05:29 浏览: 136
好的,以下是用中文回复:
声明一个异常类cexception,其中包含一个成员函数what(),用于显示异常的类型。在子函数中触发异常,然后在主程序中处理异常。具体步骤如下:
1. 声明异常类cexception,代码如下:
```
class cexception {
public:
virtual const char* what() const throw() {
return "cexception";
}
};
```
2. 在子函数中触发异常,代码如下:
```
void subfunction() {
throw cexception();
}
```
3. 在主程序中处理异常,代码如下:
```
int main() {
try {
subfunction();
}
catch (cexception& e) {
std::cout << "Caught exception: " << e.what() << std::endl;
}
return 0;
}
```
以上就是声明一个异常类cexception,有成员函数what(),用来显示异常的类型,在子函数中触发异常,在主程序中处理异常的完整步骤。
相关问题
声明一个异常类Cexception,有成员函数what(),用来显示异常的类型,在子函数中触发异常,在主程序中处理异常。
好的,以下是一个简单的示例代码来声明一个异常类 `Cexception`,并在子函数中触发异常,主程序中进行异常处理:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Cexception {
public:
Cexception(const string& msg): m_msg(msg) {}
const string& what() const {
return m_msg;
}
private:
string m_msg;
};
void divide(int x, int y) {
if (y == 0) {
throw Cexception("Divide by zero!");
}
cout << "x / y = " << x / y << endl;
}
int main() {
int x = 10, y = 0;
try {
divide(x, y);
} catch (const Cexception& e) {
cout << "Exception caught: " << e.what() << endl;
}
return 0;
}
```
在这个示例中,我们声明了一个名为 `Cexception` 的异常类,它有一个成员函数 `what()`,用来返回异常的类型。在 `divide()` 函数中,如果除数 `y` 等于 0,则会触发一个 `Cexception` 类型的异常。在 `main()` 函数中,我们用 `try-catch` 块来捕获这个异常,然后通过 `e.what()` 来获取异常的类型并打印出来。
声明一个异常类Cexception,有成员函数Reason(),用来显示异常的类型,在子函数中触发异常,在主程序中处理异常,观察程序的执行流程。
好的,下面是一个简单的实现:
```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` 块,程序就会崩溃。
阅读全文