第二十五章 异常处理

来源:互联网 发布:伊朗核协议 知乎 编辑:程序博客网 时间:2024/04/27 22:58

一、终止处理程序

      1、样式:

      2、特性:从try部分退出时必须运行finally部分代码
      3、性质:
            (1)、从try块正常走到结尾时运行finally代码,__leave关键字有这种效果
            (2)、从try块提前退出(由goto,longjump,continue,break,return引发)时,将运行finally代码 (局部展开:会引发临时变量的创建)
            (3)、由于try出现异常时,将运行finally代码(全局展开:由于异常发生时程序将从try退出进入except代码块)
二、异常处理程序
     1、样式:
     2、特性:try代码块中出现异常时,程序将从try退出进入except代码块
     3、性质:
            (1)、异常处理程序没有局部展开,也就是说try中可以出现continue等关键字,而不出现性能损失,但是有全局展开,阻止全局展开可在finally中添加return
            (2)、try后要么跟finally要么跟except
            (3)、异常处理程序被执行之前必须执行异常过滤程序,异常过滤程序返回三种值(EX*)之一
            (4)、GetExceptionCode函数返回刚刚发生异常的类型
            (5)、GetExceptionInformation函数返回异常的详细信息
            (6)、RaiseException可以主动抛出一个异常
            (7)、如果异常没有被程序处理,则该异常将走以下流程:
                    :AddVectoredExceptionHandler ->向量化异常处理队列
                    :UnhandledExceptionFilter
                         :将异常报告给调试器(假如程序在调试器控制之下)
                         :SetUnhandledExceptionFilter(全局异常过滤程序)
                         :AddVectorContinueHandler (向量化异常继续处理队列)
                         :再次通知调试器,调用调试器
                         :系统内核获取异常通知用户


0 0
原创粉丝点击