我今天早上偶然发现了一些代码,看起来像这样:
try
{
x = SomeThingDangerous();
return x;
}
catch (Exception ex)
{
throw new DangerousException(ex);
}
finally
{
CleanUpDangerousStuff();
}
现在这段代码编译得很好并且工作正常,但是从 try 块中返回感觉不太对,特别是如果有一个关联的 finally。
我的主要问题是如果 finally 抛出自己的异常会发生什么?您有一个返回的变量,但也有一个异常要处理... ... 所以我很想知道其他人对于从 try 块中返回是怎么想的?