假设构造函数和进程方法可能抛出异常,那么使用可丢弃对象的最佳方法是什么?我通常更喜欢下面的一个实现。
使用块尝试捕获周围

try
{
    using (Disposable dispObj = new Disposable())
    {
        dispObj.Process();
    }
}
catch (Exception ex)
{
    // Do something
}

试着抓住最后一个街区。
Disposable dispObj2 = null;
try
{
    dispObj2 = new Disposable();
    dispObj2.Process();
}
catch (Exception ex)
{
    // Do something
}
finally
{
    if (dispObj2 != null)
    {
        dispObj2.Dispose();
    }
}

更新:
再次声明:“假设constructor和process方法可能抛出异常”。我真的不明白为什么没有人关心他们的答案中的例外。

最佳答案

using很好。它有一个内置的try finally块。如果发生异常,将自动调用dispose方法。
这很好

using (Disposable dispObj = new Disposable())
{
    dispObj.Process();
}

09-06 17:12