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