我理解 "using" 的作用是保证对象的 Dispose 方法将被调用。但是如果 "using" 语句中出现异常应该如何处理呢? 如果发生异常,我需要在 "using" 语句中包装一个 try-catch 语句。例如:
假设在 using 参数内创建对象时出现异常
try
{
// Exception in using parameter
using (SqlConnection connection = new SqlConnection("LippertTheLeopard"))
{
connection.Open();
}
}
catch (Exception ex)
{
}
或者在 using 范围内引发异常
using (SqlConnection connection = new SqlConnection())
{
try
{
connection.Open();
}
catch (Exception ex)
{
}
}
看起来,如果我已经需要使用try catch处理异常,那么也许我应该同时处理对象的释放。在这种情况下,“using”语句似乎没有帮助我解决问题。如何正确地使用“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"关键字的语法能否更加简洁易懂...
这样会更好:
using (SqlConnection connection = new SqlConnection())
{
connection.Open();
}
catch(Exception ex)
{
// What went wrong? Well at least connection is Disposed
}