终止处理

终止处理程序可确保每当控制流离开特定受保护的代码正文时,都执行特定的代码块。 终止处理程序由以下元素组成。

  • 受保护的代码正文
  • 当控制流离开受保护的正文时要执行的终止代码块

终止处理程序用特定于语言的语法进行声明。 它们通过 Microsoft C/C++ 优化编译器使用 __try__finally 来实现。 有关详细信息,请参阅处理程序语法

受保护的代码正文可以是代码块、一组嵌套块或整个过程或函数。 每当执行受保护的正文时,都将执行终止代码块。 唯一的例外是线程在执行受保护的正文期间终止(例如,如果从受保护的正文中调用 ExitThreadExitProcess 函数)。

当控制流离开受保护的正文时执行终止块,无论受保护的正文是正常终止还是异常终止。 当执行块中的最后一个语句并且控制按顺序进入终止块时,受保护的正文被视为已正常终止。 当控制流因异常或因 returngotobreakcontinue 控制语句而离开受保护的正文时,将发生异常终止。 可以从终止块内调用 AbnormalTermination 函数,以确定受保护的正文是否正常终止。