WINDOWS核心编程第5版》随笔记录24

条目1、由CPU抛出的异常都是硬件异常,由操作系统和应用程序抛出的异常通常被称为软件异常。(P638)

 

条目2、异常处理程序的语法结构:(P638)

任何一个try,后面必须跟着finally或except中的任意一个代码块(不能同时拥有)。try - finally/except可嵌套使用。

 

条目3、与终止处理程序不同,异常过滤程序和异常处理程序主要由操作系统负责执行 - 编译器所做的工作十分有限。(P638)

 

条目4、在异常处理程序的try块中,return、goto、continue、break等语句不会导致程序性能损失或者增加代码量。换句话说,这些语句在try块中不会带来局部展开这样的额外开销。(P639)

 

条目5、except块执行完毕后程序依据过滤表达式中的返回值(EXCEPTION_EXECUTE_HANDLER/EXCEPTION_CONTINUE_EXECUTION),来决定是从发生异常的那条指令开始执行还是从except块后继续执行。(P642)

 

条目6、当异常过滤程序的计算结果为EXCEPTION_EXECUTE_HANDLER时候,系统必须执行全局展开。全局展开导致所有已经执行但尚未完成的try/finally块得以继续执行。(P645)

 

条目7、从WINDOWS VISTA开始,如果一个异常发生在try/finally块中,并在其上层又没有try/except块(且过滤表达式返回EXCEPTION_EXECUTE_HANDLER),进程会立即终止。即全局展开不会发生,finally块也不会执行。(P647)

 

条目8、通过将return语句置于finally块中可以阻止系统完成全局展开。(P647)

 

条目9、内联函数GetExceptionCode只能在过滤表达式中调用,其返回值代表发生的异常类型。(P652)

 

条目10、内联函数GetExceptionInformation只能在过滤表达式中调用,其返回值指向异常的信息。(P656)

 

条目11、软件异常通过RaiseException抛出!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值