Наверняка, вы знаете что в C# есть такая конструкция, как using. И, скорее всего, в курсе, что использовать его можно и нужно только с объектами, реализующими интерфейс IDisposable (и, соответственно, скорее всего, что-то делающими с неуправляемыми ресурсами). На всякий случай, напомню, что конструкция вида:
using (someType obj = new someType()) { //тут что-то происходит }разворачивается компилятором вот в такую:
someType obj = new someType(); try { //тут что-то происходит } finally { //если объект значимого типа (value-type) ((IDisposable)obj).Dispose(); //или, если объект ссылочного типа (reference-type) if (obj!=null) ((IDisposable)obj).Dispose(); }а где же блок catch, спросите вы? Почему его нет? И почему не предусмотрен вариант using, где его можно задать?