【发布时间】:2019-01-02 12:24:24
【问题描述】:
我们在这个论坛上看到了很多关于 try-catch-finally 和 try-finally 构造的问题。
答案的数量增加了问题的数量,所以我也很少。
这里是 a link 进入微软的解释 try-finally 构造。我已经读过了!
在下面的文章中写道:
在已处理的异常中,保证关联的 finally 块 要运行。但是,如果异常未处理,则执行 finally 块取决于异常展开操作的方式 触发。反过来,这取决于您的计算机的设置方式。
-
我是否正确理解
try-catch-finally构造finally将始终被执行? (不包括Environment.FastFail())我在这个论坛上读到过
StackOverFlowException(在这种情况下没有执行finally块),但是当我throw它时,finally块被执行。那么StackOverFlowException呢? 为什么不调用
finally块?(在下面的代码中)?对于哪些情况我们一般使用
try-finally?finally块依赖于哪台 PC 设置?
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
try
{
throw new Exception();
}
finally
{
Console.WriteLine("finally");
Console.ReadKey();
}
}
}
}
【问题讨论】:
-
这是 4.5 个问题;这可能会因为过于宽泛而被关闭。
-
通常你的 finally 总是被运行,所以你可以让你的对象处理并关闭所有创建的内存泄漏。关于如何配置您的计算机的问题我不知道...
-
“这个论坛”不想成为一个论坛。
-
这个 finally 块应该运行。你知道如何在调试器中继续,对吧?
标签: c# try-catch-finally finally try-finally