定义一个异常类CException,有成员函数Reason(),用来显示异常的类型,定义函数fn1()触发异常,在主函数的try模块中调用fn1(),在catch模块中捕获异常,观察程序的执行流程。用c++编程
时间: 2024-02-03 08:15:01 浏览: 28
下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
class CException {
public:
CException(string reason) : m_reason(reason) {}
string Reason() { return m_reason; }
private:
string m_reason;
};
void fn1() {
throw CException("Something went wrong.");
}
int main() {
try {
fn1();
}
catch (CException& e) {
cout << "Exception caught: " << e.Reason() << endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个异常类`CException`,有一个成员函数`Reason()`用来显示异常的类型。我们还定义了一个函数`fn1()`,它会触发一个异常。在主函数中,我们使用`try-catch`语句块,调用`fn1()`并捕获异常。如果有异常被抛出,我们就会在控制台上显示异常的类型。
相关问题
(1)定义一个异常类Cexception,有成员函数reason(),用来显示异常的类型 (2)定义一个函数fun()触发异常,在主函数try语句块中调用fun(),在catch语句块中捕获异常,观察执行流程。
好的,我来为您解答这个问题。
首先,我们需要定义一个异常类Cexception,代码如下:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Cexception {
public:
Cexception(string reason) {
m_reason = reason;
}
string reason() {
return m_reason;
}
private:
string m_reason;
};
```
这个类有一个成员函数reason(),用来显示异常的类型。现在我们可以定义一个函数fun(),用来触发异常,代码如下:
```cpp
void fun() {
throw Cexception("This is an exception!");
}
```
现在我们可以在主函数中调用fun(),并且在catch语句块中捕获异常,观察执行流程。代码如下:
```cpp
int main() {
try {
fun();
}
catch (Cexception e) {
cout << "Exception caught: " << e.reason() << endl;
}
return 0;
}
```
在try语句块中调用fun()时,会抛出一个Cexception类型的异常。在catch语句块中捕获异常,并且调用异常对象的reason()函数来显示异常的类型。程序执行结果如下:
```
Exception caught: This is an exception!
```
这样,我们就成功定义了一个异常类Cexception,并且用try-catch语句块来捕获并处理了异常。
声明一个异常类CException,有成员函数Reason()用来显示异常,定义函数fun()触发异常,在主函数的try模块中调用fun(),在catch模块中捕捉异常
对于您的问题,我可以提供如下的代码示例:
```
#include <iostream>
using namespace std;
class CException {
public:
string Reason() {
return "An exception has occurred.";
}
};
void fun() {
throw CException();
}
int main() {
try {
fun();
}
catch(CException& e) {
cout << e.Reason() << endl;
}
return 0;
}
```
这段代码实现了一个异常类CException,并定义了成员函数Reason()用来显示异常信息。函数fun()触发异常,可以在主函数的try模块中调用该函数,在catch模块中捕捉异常并显示异常信息。如果没有异常发生,则程序会正常结束。