class seh_exception : public std::exception {
public:
seh_exception(UINT se_code, PEXCEPTION_POINTERS se_info);
seh_exception(const seh_exception& old);
~seh_exception();
const char *what() const;
};
void translate_seh_exception(UINT se_code, PEXCEPTION_POINTERS se_info) {
throw seh_exception(se_code, se_info);
}
现在,我在构造函数中做什么?我找不到任何关于*se_info
存在多久的信息,这意味着我可能不应该只是保存se_info
在私有字段中以备后用——我应该深入复制它。或者可能不是?
怎么回事what()
?我应该按需变出底层字符串吗?同样,在这种情况下,在构造函数中分配内存似乎不是一个好主意。
我目前已经实现了它存储se_code
并且se_info
没有任何深度复制,并在构造函数中生成格式化消息,并且它可以工作,尽管我不知道它是否真的应该工作。
我打算在“捕获,记录发生的事情,终止”场景中使用它。