C++ EH Exception(0xe06d7363)----抛出过程
C++ EH Exception是Windows系统VC++里对c++语言的throw的分类和定义,它的代码就是0xe06d7363。在VC++里其本质也是SEH结构化异常机制。在我们分析用户崩溃的例子中经常会遇到它。一般情况下,遇到它,是我们代码里用throw抛出异常后没有处理导致程序崩溃。下面分析一下它的原理。
我们借助一段代码来跟踪和分析
classMyException
{public:intnErr;char *szMessage;public:
MyException(void)
:nErr(0)
, szMessage(NULL)
{
}
MyException(int nerr,char *szMess)
:nErr(nerr)
, szMessage(szMess)
{
}~MyException(void)
{
}
};int _tmain(int argc, _TCHAR*argv[])
{try
{
MyException me(1, "test exception");
throw me;
}
catch (MyException me1)
{
printf("err=%s\n",me1.szMessage);
}
}
- 上一篇: 仅通过转储来排除内存泄漏
- 下一篇: 使用Java中的InputStream读取文件数据