在 C# 中,如果抛出未处理的异常,Finally 块是否会在 try、catch、finally 中执行? [复制]

2024-03-20

另一个面试问题期待真/假答案,但我不太确定。

复制

  • 在 .NET 中,如果 catch 块中出现错误,finally 总是会被调用怎么办? https://stackoverflow.com/questions/582095/in-net-what-if-something-fails-in-the-catch-block-will-finally-always-get-call
  • finally 块总是运行吗? https://stackoverflow.com/questions/464098/does-a-finally-block-always-run
  • finally 不在 .net try..finally 块中执行时的条件 https://stackoverflow.com/questions/111597/conditions-when-finally-does-not-execute-in-a-net-try-finally-block
  • 如果我在 Try 块中返回值,Finally 语句中的代码会触发吗? https://stackoverflow.com/questions/345091/will-code-in-a-finally-statement-fire-if-i-return-a-value-in-a-try-block

finally被执行大多数时候。几乎所有情况都是如此。例如,如果出现异步异常(例如StackOverflowException, OutOfMemoryException, ThreadAbortException) 被扔到线程上,finally不保证执行。这就是为什么受限执行区域 http://msdn.microsoft.com/en-us/library/ms228973.aspx存在用于编写高度可靠的代码。

出于采访目的,我希望这个问题的答案是false(我不会保证任何事情!面试官自己可能不知道这一点!)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中,如果抛出未处理的异常,Finally 块是否会在 try、catch、finally 中执行? [复制] 的相关文章

随机推荐