关于WINDOWS异常处理的问题:
1、对于结构化异常,异常代码同样是Exception code: C0000005 ACCESS_VIOLATION,有的时候程序会自动退出,有时会弹出一个异常对话框,有的时候则引起CPU利用率非常高,而程序不退出,到底是什么原因?WINDOWS是如何处理存取异常的?

解决方案 »

  1.   

    windows的结构化异常处理SEH是一个链式结构,当一个异常产生时,系统就从这个链表中摘取头一个异常处理过程进行处理,如果还需要传递就继续,直到最后都没有处理的异常由默认的异常处理函数处理,就是弹出一个Exception code: C0000005 ACCESS_VIOLATION消息框,然后中止程序运行
      

  2.   

    在windows下,异常是由系统自动嵌入的,也就是说每个进程都会有SEH的链式结构,自动嵌入一个相应的程序来进行异常处理,当用户在上层加个一个SEH时,会自动放入到最前面,如发生异常时,会查到最前面的那个处理程序,也就是我们在编写C++代码时的catch{}部分。如一个也没有,则系统什么也不提示,结束进程。一般来说,在win2000下,都会有一个提示的。