Я только что закончил читать эту статью о преимуществах и недостатках исключений, и я согласен с мнением, что блоки Try-Catch не должны использоваться для "нормального" управления потоком управления (не используйте их как гото). Тем не менее, один автор высказал (хорошие) замечания по поводу ремонтопригодности и особенно производительности, которые заставили меня задуматься о том же в блоках Try-finally.
Я окружаю каждое Событие открытия соединения в моем приложении ASP.NET с помощью Try, чтобы я мог быть уверен, что Соединение завершено в Окончании. Утечка соединений, очевидно, НЕ является хорошей вещью в веб-приложении, и я сомневаюсь, что я бы изменил эту практику, но что вы думаете?
Примечание: у меня есть соединения, завернутые в DAL, и я могу закрывать соединения, когда вызывается деструктор объекта, но мне это кажется отрывочным. Насколько я знаю, вы не можете рассчитывать на вызов деструктора в случае исключения. Я не прав?