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函数在该处展开。将会导致编译时的时间开销变大
分类:
Windows核心编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构