使用try-finally只是为了确保在方法完成时执行某些操作?

jav*_*red 5 c#

我的方法返回很多点.我在执行期间也在许多方面构造newData.无论我返回哪里,我都需要保存并存储构造结果.不要错过"返回"我只是用try-finally块包围代码,所以现在我确定将存储newData.

List<X> newData = new List<X>();
try
{
    ....
    update newData
    .....
    return;
    .....
    ....
    update newData
    ....
    update newData
    return;
    .....
    return;
} finally
{
    // copy newData to data    
}
Run Code Online (Sandbox Code Playgroud)

但我没有发现任何异常,并且此代码不适用于异常.一般来说是否可以接受,或者你可以提出另一种更好的方法

Jon*_*eet 6

我建议将try块中的代码重构为一个新方法:

data = CreateList();

...

private List<X> CreateList()
{
    List<X> list = new List<X>();
    // It's fine to return list from any point here...
}
Run Code Online (Sandbox Code Playgroud)