try catch拦截不到异常啊???

[复制链接]
查看11 | 回复1 | 2011-5-14 05:04:59 | 显示全部楼层 |阅读模式
请问我想对程序中出现的任何一处潜在的异常都进行拦截,出现了异常后,弹出对话框,而不至于程序直接出错退出,那样界面不友好。但是我发现有时候还是拦截不到一些异常埃。。对整个代码都加了trycatch,还是直接报错退出。。何如???
回复

使用道具 举报

千问 | 2011-5-14 05:04:59 | 显示全部楼层
trycatch是用来捕获C抛出的异常的。
windows系统抛出的异常不是C异常。

一方面,没有捕获到的异常可能是系统抛出的异常,不是C异常。
另一方面,程序在结构上有BUG,导致有些逻辑路线上没有对应的trycatch块。

要捕获系统抛出的异常,应该使用__try__except。
windows还允许注册一个全局的异常处理器,当发生任何异常时,如果程序没有捕获它。最终该异常处理器就会被调用,来进行最终的处理。注册全局异常处理器的函数是SetUnhandledExceptionFilter。使用说明可参考MSDN。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行