异常处理之不要放过First-chance exception

来源:互联网 发布:网络隔离卡作用 编辑:程序博客网 时间:2024/05/16 03:18

原地址:http://blog.csdn.net/m_star_jy_sy/article/details/5578998

不要放过First-chance exception

1)什么是First-chance exception
 VC6调试环境下(debug)运行程序时,经常在output窗口看到有
 First-chance exception in hotfoxd.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
 的输出字样。
 当调试程序时,若引发了异常,那么调试器会得到通知,应用程序被挂起,由调试器决定如何来处理这个异常。而VC6调试器debug下对异常的默认处理为Stop if no handled,
 即异常未处理(捕获)时才停止。如果异常被程序捕获(try...catch...),那么调试器不会中断程序,而是继续运行,并在Output窗口输出First-chance exception字样。

2)怎么解决First-chance exception
 First-chance exception的输出表示程序产生了异常并被捕获了。对于异常在调试阶段应该尽可能解决掉,不让其出现异常。当然有些异常是预期的,有些异常是非预期的。
 例如,ado的查询语句,如果语句非法,则ado会报出异常。虽然有异常捕获,程序能继续运行,但这种错误明显的是需要解决的。 
 对于一个高可用服务器而言,要求7×24小时的连续运行,如果异常频繁出现,则会影响到服务器的持久运行能力。
 所以,在程序发布之前,过一遍First-chance exception是很有必要的。
 VC6能够修改调试器的默认行为(Stop if no handled),改为Stop always。通过[Debug/Exceptions]菜单。
 

这样,当出现异常时,即便是有异常捕获,也会弹出提示对话框,并停在异常代码处。

 改为Stop always后,查出几个供应包平台后台线程扫描数据库的几个sql语句不对的bug。这样的异常在后台线程频繁抛出,想必对服务器有些影响。
 

3)调试器还能对其他异常作出停止处理
 Stack Overflow exception
 Access Violation exception
 等。
 在程序发布前,建议对这些异常过一遍。

 

参考文献:

http://support.microsoft.com/kb/250563/en-us

http://blogs.msdn.com/davidklinems/archive/2005/07/12/438061.aspx

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩脖子拧筋了怎么办 小孩塑料玩具拧不出来怎么办 一年级孩子做数学题粗心怎么办 手和脚有点肿怎么办 手破了之后肿了怎么办 手指肿了有脓怎么办 宝宝手指红肿有脓怎么办 孩子一听做作业就烦气怎么办 虎皮鹦鹉脚瘸了怎么办 虎皮鹦鹉脚受伤了怎么办 虎皮鹦鹉脚流血了怎么办 虎皮鹦鹉被风扇打到脚怎么办 虎皮鹦鹉脚脱臼了怎么办 孩子作业做得慢怎么办 员工给公司造成损失怎么办 小孩有写不完的作业家长怎么办 一年级孩子作业太粗心怎么办 孩子最近不好好做作业怎么办 工作压力大害怕做不好怎么办 孩子的数算不对怎么办? 孩子计算老是出错怎么办呢 孩子经常计算错误能怎么办 孩子老出现计算错误怎么办 孩子做作业马虎该怎么办 黑笔写错了纸破了怎么办 幼儿园报名写错怎么办名字 中考写错了字怎么办 头发没干想睡觉怎么办 突然天旋地转恶心想吐怎么办 突然天旋地转的浑身出汗怎么办 3岁半不认识数字怎么办 孩子长倒睫毛该怎么办 一年级的孩子口算慢怎么办? 大班社会领域怎么办教学反思 表带活动圈坏了怎么办 手表固针h掉了怎么办 cad图全部倒过来了怎么办 电脑打数字变粗怎么办 wps表格输入数字变乱码怎么办 文档中光标变粗怎么办 wps排序有重复的怎么办