定义一个异常类CException,有成员函数Reason(),用来显示异常的类型,定义函数fn1()触发异常,在主函数的try模块中调用fn1(),在catch模块中捕获异常,观察程序的执行流程。用c++编程
时间: 2024-02-03 07:15:01 浏览: 114
下面是一个简单的示例代码:
```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()`并捕获异常。如果有异常被抛出,我们就会在控制台上显示异常的类型。
相关问题
声明一个异常类CException,它有成员函数Reason,它用来显示异常的类型,在子函数中触发异常,在主程序中处理异常,观察程序的执行流程,编写程序lab12_1.cpp。在CException类的成员函数Reason()中用cout显示异常的类型,在函数fn1()中用throw语句触发异常,在主函数的try模块中调用fn1(),在catch模块中捕获异常
好的,以下是相应的代码:
```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 fn1() {
throw CException("Error occurred in fn1()");
}
int main() {
try {
fn1();
}
catch (CException& e) {
e.Reason();
}
return 0;
}
```
程序的执行流程如下:
1. 程序开始执行,进入main函数;
2. 在try块中调用fn1函数;
3. fn1函数中使用throw语句抛出一个CException类型的异常,程序跳转到catch块中;
4. catch块中捕获到异常,并调用异常类CException的成员函数Reason()显示异常信息;
5. 程序结束。
希望这个例子对你有所帮助!
(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语句块来捕获并处理了异常。
阅读全文