使用try / catch块的SPSite currentSite

时间:2016-01-08 13:36:19

标签: c# sharepoint-2010 try-catch using

在为sharepoint 2010应用程序编写代码时,有什么更好的方法:

 using (SPSite currentSite = new SPSite("SiteName"))
 {
     using (SPWeb currentWeb = currentSite.OpenWeb())
     {
        try{...}
        catch{...}
     }
 }

try 
{
  using (SPSite currentSite = new SPSite("SiteName"))
  {
     using (SPWeb currentWeb = currentSite.OpenWeb())
     {
        ....
     }
  }
}
catch{...}

? 谢谢!

1 个答案:

答案 0 :(得分:0)

来自类似的帖子(Does Dispose still get called when exception is thrown inside of a using statement?

最高评价的回答表明,您提供的两个例子都可以考虑资源处理:

  

using将您的代码包装在try / finally块中,如果存在,则finally部分将调用Dispose()

所以剩下的问题可能是资源获取,这可能也会引发异常(现在已经与sharepoint合作了几年,而且看起来这个框架中的所有东西迟早会向你抛出异常)。所以我建议用你的第二个例子来捕捉那些。