对于SHE的概念性的知道就不再提及了啊,对于一般的程序员可能都遇到过这样的情况,就是VS下编程,会发现try-catch不是万能的.很多的异常捕获不到.这也就是今天要提到的结构化异常了啊,这是Windows操作系统的一种系统机制.下面提供简单的转换办法:
首选可以创建一个CSEHException类
class CSEHException
{
public:
CSEHException()
{
OldFunc = NULL;
initialize_seh_trans_to_ce();//
}
~CSEHException()
{
if (OldFunc != NULL)
{
_set_se_translator(OldFunc);
}
}
static void trans_func(unsigned int u, EXCEPTION_POINTERS *pExp)
{
throw *pExp;
}
void initialize_seh_trans_to_ce()
{
OldFunc = _set_se_translator(trans_func); //设置一个对所有的Windows系统异常产生作用的回调处理函数
}
private:
_se_translator_function OldFunc;
};
CSEHException seh; //定一个全局的
这样就可以try-catch到Windows系统异常了啊.......就这么方便简单....