using
гнезда предсказуемо с try/catch
и Dispose
будут вызываться все на путях.Как и ожидалось, управление всегда вытекает из внутренней -> внешней области (как для исключений, так и для возврата нормального потока).
Тогда возникает вопрос: когда должно catch должен быть выполнен в связи с Dispose
и , каким должен быть охват catch ?Ответ на этот вопрос зависит от кода, но, очевидно, он должен быть «изнутри», если требуется доступ к db
, и «снаружи», если код, выполняемый как часть , using
* может бытьисточник исключения.
(Кроме того, пустые блоки перехвата являются странными! Я предполагаю, что они есть «для демонстрационных целей».)
Счастливое кодирование.
* Обратите внимание, что внешний улов будет ловить исключения, выданные из new tsmtcowebEntities()
или (как указано JN) Dispose
, если таковые существуют.(Это совсем другая тема, если для любой конструкции допустимо генерировать исключение ;-) Я предпочитаю отлавливать исключения как можно ближе к источнику и позволять исключениям, которые я не знаю, как справиться с "выпуском" необработанным за исключением в некоторых конструкциях верхнего уровня (например, обработчиках событий).