SPSite currentSite using try/catch block



在为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{...}

非常感谢。

来自类似线程的

(当在using语句内部抛出异常时,是否仍会调用Dispose?)

评分最高的答案表明,考虑到资源处置,你给出的两个例子都是可以的:

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

因此,剩下的问题可能是资源获取,这可能也会引发异常(与sharepoint合作了几年,似乎这个框架中的所有内容迟早都会引发异常)。所以我建议用你的第二个例子来抓住这些。

最新更新