编写异常处理的类c
时间: 2024-02-25 09:58:57 浏览: 79
在 C++ 中,异常处理通常使用 try-catch 块来实现。下面是一个简单的异常处理类的例子:
```c++
#include <iostream>
using namespace std;
class DivideByZeroException {
public:
DivideByZeroException() {}
friend ostream& operator<<(ostream& os, const DivideByZeroException& e) {
return os << "Attempted to divide by zero";
}
};
int divide(int numerator, int denominator) {
if (denominator == 0)
throw DivideByZeroException();
return numerator / denominator;
}
int main() {
int numerator, denominator, result;
cout << "Enter numerator: ";
cin >> numerator;
cout << "Enter denominator: ";
cin >> denominator;
try {
result = divide(numerator, denominator);
cout << "Result: " << result << endl;
}
catch (DivideByZeroException& e) {
cerr << "Error: " << e << endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个名为 DivideByZeroException 的异常类。当除数为 0 时,我们抛出这个异常。在 main() 函数中,我们调用 divide() 函数并将其结果存储在 result 变量中。如果 divide() 函数抛出 DivideByZeroException 异常,我们将其捕获并输出错误消息。
注意,我们在 catch 块中使用引用传递异常对象,这是因为异常对象通常比较大,传递引用可以提高程序的性能。另外,我们还重载了 << 运算符,以便可以像输出流一样输出异常对象。
阅读全文