#include <iostream> using namespace std; class CException { /********** Begin **********/ /********** End **********/ }; void fn1() { throw CException(); } int main() { try { fn1(); } catch (CException& ce) { ce.Reason(); } return 0; }
时间: 2023-06-29 18:15:20 浏览: 87
#include <iostream>
这段代码需要你实现 CException 类中的 Reason 函数,让它能够输出异常的原因。以下是一个可能的实现方式:
```cpp
#include <iostream>
#include <string>
using namespace std;
class CException {
public:
CException() : m_reason("Unknown Exception") {}
CException(const string& reason) : m_reason(reason) {}
void Reason() const { cout << m_reason << endl; }
private:
string m_reason;
};
void fn1() {
throw CException("Exception Occurred");
}
int main() {
try {
fn1();
} catch (CException& ce) {
ce.Reason();
}
return 0;
}
```
在这个示例中,我们在 CException 类中添加了一个带有字符串参数的构造函数,用于初始化异常的原因。我们还添加了一个名为 Reason 的成员函数,它输出异常的原因。
在 fn1 函数中,我们抛出了一个 CException 类型的异常,并在 main 函数中使用 try-catch 语句来捕获这个异常。在 catch 块中,我们调用了 ce.Reason() 函数来输出异常的原因。
希望这个示例对你有所帮助!
阅读全文