(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函数在该处展开。将会导致编译时的时间开销变大
标签:调用,处理,--,try,Windows,finally,23.1,终止,SEH From: https://www.cnblogs.com/renleiguanchashi/p/16923120.html