try-catch-finally
和try-finally
结构的问题,答案的数量增加了问题的数量,所以我也有一些问题。这是一个链接到微软解释try-finally结构的链接。我已经阅读过它!
在下面的文章中写道:
在处理异常时,相关的finally块保证会被执行。然而,如果异常未被处理,finally块的执行取决于异常展开操作如何被触发。这又取决于计算机的设置。
1.我是否正确理解,在
try-catch-finally
结构中,finally
将始终被执行?(不包括Environment.FastFail()
)我在这个论坛上读到了关于
StackOverFlowException
的内容(即在这种情况下finally
块不会被执行),但是当我throw
它时,finally
块会被执行。那么StackOverFlowException
是怎么回事?2.为什么
finally
块没有被调用?(在下面的代码中)3.我们通常在哪些情况下使用
try-finally
?4.
finally
块依赖于哪些计算机设置?using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
try
{
throw new Exception();
}
finally
{
Console.WriteLine("finally");
Console.ReadKey();
}
}
}
}