标题: 一些关于SEH外在表现的个人观点
(调试堆溢出的时候,被这几个外在表现搞晕了,用SoftICE跟了一下,小结一把)
在此提一些关于SEH外在表现的个人观点,欢迎批评指正:
a) 弹出"只有一个确定按钮的红叉框",意味着外层有__try/__except块决定处理异 常,而内层有__try/__finally块。当按下确定后,在全局展开中找到内层的 __try/__finally块并执行之。
b) 弹出"有调试、关闭按钮的非红叉框",意味着设置了Just-In-Time Debugging, 并获得机会执行,这已经是最后机会了。
c) 弹出"只有一个关闭按钮的非红叉框",意味着没有设置Just-In-Time Debugging, 内层也没有决定处理异常的__try/__except块。
d) 触发异常,但什么框也未弹出,意味着内层有__try/__except块决定处理异常。 或者在异常处理过程中再次触发异常。
其实比较搞晕人的只有情形a,后面三种早就熟悉了。