try ... catch плодит говнокод
От: vvv848165@ya.ru  
Дата: 14.02.20 09:02
Оценка: :))) :))) :)
Что-то почти всегда минусов от исключений больше чем плюсов ...
например такой пример:
    class Program
    {

        static void Fx()
        {
            FileStream f = new FileStream("D:\\1.txt",FileMode.Append);

            f.Write(UnicodeEncoding.UTF8.GetBytes("zzz"));
            throw new Exception("test");//предположим вызвалось в процессе работы исключение!!!
            f.Close();
        }
        static void Main(string[] args)
        {
            try {
                Fx();
            }
            catch (Exception e)
            {
                Console.WriteLine("zzz");
            }
            Console.WriteLine("Hello World!");
        }
    }

во время выполнения Console.WriteLine("zzz"); Файл "D:\\1.txt" остаётся открытым и не записывается
А если подобное исключение вызывает нехорошее состояние обекта — то даже правильный GC не поможет!!!
Править такое ГГ надоедает...
Правлю я в стиле:
    finally 
            {
        if(f!=null){...}
        if(...){...}
        //задолбало полотно!!!
            }

Можно вобще не обрабатывать — закроется с ошибкой (типо почти нормально?) — но какой тогда смысл в их использовании???
Может подскажите как меньшими силами обходит похожие грабли ???
Отредактировано 14.02.2020 9:31 vvv848165@ya.ru . Предыдущая версия . Еще …
Отредактировано 14.02.2020 9:08 vvv848165@ya.ru . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.