一尘不染

为什么最终在C#中使用?

c#

最终块中的所有内容总是(几乎)执行,那么将代码包含在其中还是不关闭代码有什么区别?


阅读 194

收藏
2020-05-19

共1个答案

一尘不染

无论是否存在异常,finally块中的代码都将被执行。当涉及某些家政功能时,这非常方便,您需要始终像关闭连接一样运行。

现在,我 您的问题是为什么要这样做:

try
{
    doSomething();
}
catch
{
    catchSomething();
}
finally
{
    alwaysDoThis();
}

当您可以这样做时:

try
{
    doSomething();
}
catch
{
    catchSomething();
}

alwaysDoThis();

答案是很多时候catch语句中的代码要么抛出异常,要么脱离当前函数。对于后面的代码,“ alwaysDoThis();”
如果catch语句中的代码发出返回或引发新异常,则调用将不会执行。

2020-05-19