23.1 SEH之终止处理--《Windows核心编程》结构化异常处理

(structured exception handing)SEH 包含终止处理和异常处理。本章讨论终止处理。

一、终止处理

终止处理程序确保不管一个代码块(被保护代码)如何退出的,另一个代码块(终止处理程序)总能被调用和执行。语法如下:

__try{
// Guarded body
}
__finally{
// Termination handler
}


当以下三种情况发生时,进入_finally

  • _try块代码自然执行完成
  • _try块中调用return,goto,longjump,break等导致跳出_try块时
  • _try块代码执行中由于调用其他函数发生异常,书中把这个叫做全局展开(global unwind)

注意,当调用exitthread exitprocess terminatethread terminateprocess时,不进入finally


编译器实现终止处理:

_try块中查找可能导致跳出的return、goto等语句,发现后,将finally函数在该处展开。将会导致编译时的时间开销变大

 

posted @   人类观察者  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示