Я понимаю, что точка "использования" заключается в том, чтобы гарантировать, что будет вызываться метод Dispose объекта. Но как должно обрабатываться исключение в инструкции "using" ? Если есть исключение, мне нужно обернуть мой оператор "using" в try catch. Например:
Допустим, что существует исключение, созданное при создании объекта внутри параметра использования
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" , похоже, не помогает мне вообще. Как правильно обработать исключение с помощью инструкции "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
}