基本上我听说某些条件会导致.net超越finally块.有谁知道这些条件是什么?
两个条件有什么区别?每次运行method1或method2时,都应该有一个运行所需的代码块.在我看来,2方法是相同的.
// example method1
void Method1(void)
{
try
{
// do something
}
catch (Exception ex)
{
// do something
}
finally
{
// do something whenever method1 runs
}
}
// example method2
void Method2(void)
{
try
{
// do something
}
catch (Exception ex)
{
// do something
}
// do something whenever method2 runs
}
Run Code Online (Sandbox Code Playgroud)
最后块对我来说似乎没必要.
为什么我们不应该使用catch块来清理代码?
我没有那么多使用错误处理技术,但我现在开始将它们用于几乎每个程序.关于时间
因此,在浏览文章/文档时,我遇到了finally块.
并且正如它所暗示的那样,无论是否存在异常,finally块都会运行(当然,如果JVM或PC被强制关闭,它将无法运行).最后,块通常用于清理代码(资源).
所以基本上,如果我的代码没有异常,那么我为什么要清理代码呢.我不应该将清理代码放在catch块而不是finally块中.
我试着寻找类似的问题,但似乎没有人问过这个问题.所以我继续前进并提出了一个问题:D