尝试最后或尝试抓住最后

Col*_*e W 5 c# exception-handling

如果我有类似下面的方法,我可以在这里省略catch块以获得相同的结果吗?:

private ClassInstance GetMeANumber()
{
     Resource a = null;

      try
      {
          Resource a = new Resource();
          return a.GetClassInstance();
      }
      catch
      {
          throw;
      }
      finally
      {
          if(a != null)
              a.Dispose();
      }
}
Run Code Online (Sandbox Code Playgroud)

RB.*_*RB. 18

是的,那将是完全一样的.

然而,更常见的模式是实现IDisposable接口Resource.然后你可以使用use 更简洁地实现同样的事情.

using (Resource a = new Resource()) {
    return a.GetClassInstance();
}
Run Code Online (Sandbox Code Playgroud)