那么我们不觉着奇怪吗,为什么操作系统会第二次调用了一次我们的回调函数?
原因是操作系统正在进行异常展开,调用我们的回调是告诉我们,该处理的处理....三丶异常处理的顺序
异常处理处理发生的时候,会有顺序的
1.系统首先发送给调试器 调试器优先级最高
2.如果没有调试器,系统会继续查找线程相关的异常处理,
3.每个线程相关的异常处理例程,可以处理或者不处理这个异常...,如果不处理,并且安装了多个线程相关的处理例程,可交给连起来的其它例程处理
4.不处理这个异常,在判断程序是否在调试状态,如果在就接着给调试器
5.如果没有的话,或者不处理,那么操作系统就会调用筛选器异常...四丶主动引发异常
我们说过throw这个语句会抛出一个异常,其实底层调用的也是API
void RaiseException(DWORD dwExeptionCode,
DWORD...最后两个参数是用户自定义的.throw这个语法就是调用的这个API
五丶自动展开操作
我们说过,异常展开的时候,我们自己也可以去做,也可以交给操作系统做,而操作系统做的时候也是调用的API
RtIUnwind