我理解“使用”的目的是保证调用对象的 Dispose 方法。但是应该如何处理“使用”语句中的异常呢?如果出现异常,我需要将我的“使用”语句包装在 try catch 中。例如:
假设在 using 参数内创建对象时创建了一个异常
try
{
// Exception in using parameter
using (SqlConnection connection = new SqlConnection("LippertTheLeopard"))
{
connection.Open();
}
}
catch (Exception ex)
{
}
或使用范围内的异常
using (SqlConnection connection = new SqlConnection())
{
try
{
connection.Open();
}
catch (Exception ex)
{
}
}
似乎如果我已经需要使用 try catch 来处理异常,那也许我也应该处理对象的处理。在这种情况下,“使用”语句似乎根本没有帮助我。如何使用“using”语句正确处理异常?我缺少更好的方法吗?
SqlConnection connection2 = null;
try
{
connection2 = new SqlConnection("z");
connection2.Open();
}
catch (Exception ex)
{
}
finally
{
IDisposable disp = connection2 as IDisposable;
if (disp != null)
{
disp.Dispose();
}
}
“使用”关键字语法是否可以更甜美一些......
如果有这个肯定会很好:
using (SqlConnection connection = new SqlConnection())
{
connection.Open();
}
catch(Exception ex)
{
// What went wrong? Well at least connection is Disposed
}