我是否需要手动关闭. net SqlConnection,如果它在“using”语句中抛出异常
本文关键字:如果 using 抛出异常 语句 SqlConnection 是否 net | 更新日期: 2023-09-27 18:09:25
如果SqlConnection
在using
语句内执行期间抛出异常,我是否需要手动关闭finally
中的连接?或者using
语句的范围会为我调用Dispose
方法(在SqlConnection
上)……因此执行.Close();
方法为我(自动)?
using (var sqlConnection = new SqlConnection(_connectionString)
{
sqlConnection.Open();
throw new Exception("boom!");
}
和
using (var sqlConnection = new SqlConnection(_connectionString)
{
try
{
sqlConnection.Open();
throw new Exception("boom!");
}
finally
{
sqlConection.Close();
}
}
另外,在TransactionScope
+异常抛出中包装这个是否会影响我应该如何.Close()
或using
作用域自动为我做这件事?
不,如果它在using
using语句确保Dispose被调用在调用对象上的方法时发生异常。你可以通过将对象放入try块和中来实现相同的结果然后在finally块中调用Dispose;其实,这是如何Using语句由编译器翻译。
来源:MSDN.