В C #. Оператор using определяет область действия элемента, который должен быть удален. Это может быть вызвано для любого объекта, который реализует интерфейс IDisposable.
http://msdn.microsoft.com/en-us/library/system.idisposable.aspx
Таким образом, если бы вам не пришлось использовать блоки, вы бы вызвали метод dispose для класса, чтобы освободить / очистить ресурсы, созданные объектом.
При вызове класса, реализующего интерфейс IDisposable, шаблон try / finally обеспечивает удаление неуправляемых ресурсов, даже если исключение прерывает ваше приложение.
Если в случае оператора using выдается исключение, утилита будет по-прежнему вызываться. Вы также можете сложить, используя операторы
using (SqlConnection sqlConn = new SqlConnection(m_SQLConnectionString))
using (SqlCommand cmd = new SqlCommand(strSelectStatement, sqlConn))
{
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ID;
using (SqlDataAdapter adpt = new SqlDataAdapter(cmd))
{
adpt.Fill(dt);
}
}
относительно обработки исключений. Нецелесообразно перехватывать все исключения, пытаться перехватить конкретные исключения, созданные классом или методом. Вы можете просмотреть сведения об исключении в MSDN, поэтому SQLConnection: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.open.aspx
InvalidOperationException
Невозможно открыть соединение без указания источника данных или сервера.
или
Соединение уже открыто.
SqlException
Произошла ошибка на уровне соединения при открытии соединения. Если свойство Number содержит значение 18487 или 18488, это означает, что указанный пароль истек или должен быть сброшен. См. Метод ChangePassword для получения дополнительной информации.
Так что это исключения, которые вы должны учитывать. Надеюсь, это поможет!