3、在类CExeption的成员函数Reason()中用cout显示异常的类型,在函数fn1()中用throw触发异常,在主函数的try模板中调用fn1(),在catch模板中捕获异常。 算法:先根据要求定义一个类CExeption,然后用成员函数Reason()来显示错误信息,然后定义一个函数来完成除法功能,触发条件为除数为0,然后定义主函数来处理异常 给出运行结果和注释
时间: 2024-03-25 21:42:09 浏览: 45
好的,我明白了。以下是代码实现和注释:
```cpp
#include <iostream>
using namespace std;
class CExeption {
public:
void Reason() {
cout << "除数不能为0!" << endl;
}
};
double Divide(double num1, double num2) {
if (num2 == 0) {
CExeption e;
throw e; // 抛出异常对象
}
return num1 / num2;
}
int main() {
double num1, num2, result;
cout << "请输入两个数,计算它们的商:" << endl;
cin >> num1 >> num2;
try { // 在try模板中调用可能会抛出异常的函数
result = Divide(num1, num2);
cout << "计算结果为:" << result << endl;
}
catch (CExeption& e) { // 捕获抛出的异常对象
e.Reason(); // 显示错误信息
}
return 0;
}
```
运行结果:
```
请输入两个数,计算它们的商:
10 2
计算结果为:5
```
如果将第二个数输入0,则会触发抛出异常,并在catch模板中捕获并处理异常,输出错误信息:
```
请输入两个数,计算它们的商:
10 0
除数不能为0!
```
阅读全文