首页 > 其他 > 详细

SetUnhandledExceptionFilter

时间:2014-01-28 00:49:53      阅读:544      评论:0      收藏:0      [点我收藏+]

SetUnhandledExceptionFilter 设置未捕获异常处理

通常windows程序长时间运行,会发生各种问题,例如访问异常,内存溢出,堆栈破坏等。

这时候通常希望程序自己能增加处理,而不是依靠系统弹出错误提示框(灰常不友好).

bubuko.com,布布扣
//For proc exception 
LONG WINAPI ExpFilter(struct _EXCEPTION_POINTERS *pExp)  
{  
    ACE_DEBUG((LM_ERROR, "Exception code : %X, address: %x Exit!\n",
        pExp->ExceptionRecord->ExceptionCode,
        pExp->ExceptionRecord->ExceptionAddress));

    MessageBox(NULL, "Exception", "提示", MB_OK); 
    //::exit(-1);

    return EXCEPTION_EXECUTE_HANDLER;  
} 

//Test exception
// Exception code c0000374
//RaiseException(0xc0000374, 0, 0, NULL); // Exception code c0000005 // int* p1 = NULL; // *p1 = 99;

//For exception in main
::SetUnhandledExceptionFilter(ExpFilter);

 
bubuko.com,布布扣

 

PS: The RaiseException function raises an exception in the calling thread.

 

MSDN中有关SetErrorMode的详细描述,可以这样调用。

bubuko.com,布布扣
//The system does not display a message box when it fails to find a file. Instead, the error is returned to the calling process.

SetErrorMode(SEM_NOOPENFILEERRORBOX)
bubuko.com,布布扣

 

参考http://blog.csdn.net/woshinia/article/details/10212387

SetUnhandledExceptionFilter

原文:http://www.cnblogs.com/iclk/p/3535219.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!