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

标签 c#

我的方法返回了很多点。我在执行过程中也在很多方面构造了 newData。无论我回到哪里,我都需要保存和存储构建的结果。不要错过“return”,我只是用 try-finally block 包围了代码,所以现在我确定 newData 将被存储。

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

但我没有捕捉到任何异常,并且这段代码不打算处理异常。它总体上是否可以接受,或者您可以建议另一种更好的方法?

最佳答案

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

data = CreateList();

...

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

关于c# - 使用 try-finally 只是为了确保在方法完成时执行某些操作是否好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583396/

相关文章:

c# - 正则表达式拆分和过滤器构造

c# - 报告框架背后的基本原理

c# - 使用 Web API 的 ASP.Net Core 路由

C# 堆栈溢出异常

c# - IEnumerable 问题 : Best performance?

c# - 正则表达式电子邮件验证

c# - Convert.ToBase64String 是否返回与其源字节数组相同的长度?

c# - 如何将此 C# lambda 表达式转换为 VB.Net?

c# - 传递独立于模型 MVC/C# 的 ID

c# - 不同的构建操作在 csproj 中做了什么。 IE。附加文件或假货