在为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{...}
? 谢谢!
答案 0 :(得分:0)
来自类似的帖子(Does Dispose still get called when exception is thrown inside of a using statement?)
最高评价的回答表明,您提供的两个例子都可以考虑资源处理:
using
将您的代码包装在try / finally块中,如果存在,则finally部分将调用Dispose()
。
所以剩下的问题可能是资源获取,这可能也会引发异常(现在已经与sharepoint合作了几年,而且看起来这个框架中的所有东西迟早会向你抛出异常)。所以我建议用你的第二个例子来捕捉那些。