对于终止处理程序的限制
不能使用 goto
语句跳入 __try
语句块或 __finally
语句块。 相反,您必须通过常规控制流进入此语句块。 (但是,可以跳出 __try
语句块。)此外,不能将异常处理程序或终止处理程序嵌入 __finally
块。
终止处理程序中允许的某些类型的代码会生成有问题的结果,因此您应小心使用它们(如果要使用)。 其中一个是跳出 __finally
语句块的 goto
语句。 如果该块作为正常终止的一部分执行,则不会发生任何异常。 但是如果系统正在展开堆栈,则该展开会停止。 然后,当前函数会获取控制权,就象异常终止不存在一样。
__finally
语句块内的 return
语句存在大致相同的情况。 控制权将返回给包含终止处理程序的函数的直接调用方。 如果系统正在展开堆栈,此进程将暂停。 然后,如果没有引发过异常,则程序将继续执行。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈