声明一个异常类Cexception,有成员函数what(),用来显示异常的类型,在子函数中触发异常,在主程序中处理异常。
时间: 2024-02-25 11:53:35 浏览: 32
好的,以下是C++的代码实现:
```c++
#include <iostream>
#include <exception>
using namespace std;
class Cexception : public exception {
public:
const char* what() const throw() {
return "Cexception occurred.";
}
};
void myFunction() {
throw Cexception();
}
int main() {
try {
myFunction();
} catch (Cexception& e) {
cout << "Exception caught: " << e.what() << endl;
}
return 0;
}
```
在上面的代码中,我们首先定义了一个名为`Cexception`的异常类,继承自`exception`类。该类有一个成员函数`what()`,用来返回异常的类型。
接着,在`myFunction()`函数中,我们通过`throw`语句触发了一个`Cexception`类型的异常。
在主程序中,我们使用`try...catch`语句来捕获异常。如果捕获到了`Cexception`类型的异常,就调用`e.what()`函数打印异常类型。如果没有捕获到异常,程序会正常退出。
注意,在定义`Cexception`类时,我们将`what()`函数声明为`const throw()`。这是因为`what()`函数不会修改任何成员变量,而且不会抛出任何异常。因此,我们可以将其声明为`const throw()`,以告诉编译器这个函数是安全的。