Информация об изменениях

Сообщение Re[12]: обработка ошибок от 06.05.2022 19:39

Изменено 06.05.2022 19:40 Mystic Artifact

Re[12]: обработка ошибок
Здравствуйте, Ночной Смотрящий, Вы писали:

Ничего подобного, за годы тема подробнейшим образом изучена но по прежнему дисскуссионнная.

Если единственная реакция — это запись в лог и аборт процесса — тогда исключения великолепны, но в этой же модели — коды возвратов чувствуют себя не хуже.

Во всех остальных случаях это — осознанное снижение качества кода, а неосознанное использование исключений (например как весь System.IO из .net 1) ведет к тяжелым проблемам сопровождения или дизайна (проблемы не в том смысле, что оно плохо, а в смысле — что это всегда компромисс, который лежит на ваших плечах). Есть области, на подобии как тут обсуждается (веб-сервер, процессинг) где такая модель во благо, но плюньте в сторону и это уже совсем не так.

Кроме того, в основном — все сводится к языковой поддержке или концепции ошибок или функций с эффектами и механизмами заражения кода эффектами (итерация с колбэком который может бросить исключение и который не может этого сделать — это совершенно разный низкоуровневый код, и т.п.). {Т.е. камень преткновения часто перфоманс и неготовность порождать эффективный код, адекватный локальной ситуации.}

В добавок, вы упускаете из вида, что правильная программа всегда делает валидные вызовы (в идеальном мире ессно — в реальном мире для этого надо очень постараться), вне зависимости от поданных значений на её вход. Т.е. в рамках дисскуссии — номер счета который совсем не похож на него, — это часть БЛ. Это штатная ситуация и места исключениям в подобных вопросах в общем случае нет.

Но, я не хочу быть не правильно понятым: исключения — отличная концепция, в добавок присутствует почти во всех языках, хоть компилируемых, хоть скриптовых. Просто их нужно крайне аккуратно использовать и быть готовым мириться с гетерогенной природой некоторых исключений. У меня искаженное их восприятие, потому, что, я регулярно вижу отвратительные способы их использования (не тут), и в основной массе работаю с кодом без исключений (C++). Но по моим наблюдениям, средний код ничего не потеряет если не будет их использовать даже на C#. Ну а с точки зрения перфоманса, то т.н. "zero-cost exceptions" — они зеро только по отношению к setjmp, а так, они всегда хуже кода на кодах ошибок. Протаскивание кодов на верх — это такой миф. Ну и конечно же просто рекорды от души пороть в C# (не струкуры) — это хуже чем исключения, надо бить по рукам ногами за такое.

PS: Я отвечать не буду.
Re[12]: обработка ошибок
Здравствуйте, Ночной Смотрящий, Вы писали:

Ничего подобного, за годы тема подробнейшим образом изучена но по прежнему дисскуссионнная.

Если единственная реакция — это запись в лог и аборт процесса — тогда исключения великолепны, но в этой же модели — коды возвратов чувствуют себя не хуже.

Во всех остальных случаях это — осознанное снижение качества кода, а неосознанное использование исключений (например как весь System.IO из .net 1) ведет к тяжелым проблемам сопровождения или дизайна (проблемы не в том смысле, что оно плохо, а в смысле — что это всегда компромисс, который лежит на ваших плечах). Есть области, на подобии как тут обсуждается (веб-сервер, процессинг) где такая модель во благо, но плюньте в сторону и это уже совсем не так.

Кроме того, в основном — все сводится к языковой поддержке или концепции ошибок или функций с эффектами и механизмами заражения кода эффектами (итерация с колбэком который может бросить исключение и который не может этого сделать — это совершенно разный низкоуровневый код, и т.п.). {Т.е. камень преткновения часто перфоманс и неготовность порождать эффективный код, адекватный локальной ситуации.}

В добавок, вы упускаете из вида, что правильная программа всегда делает валидные вызовы (в идеальном мире ессно — в реальном мире для этого надо очень постараться), вне зависимости от поданных значений на её вход. Т.е. в рамках дисскуссии — номер счета который совсем не похож на него, — это часть БЛ. Это штатная ситуация и места исключениям в подобных вопросах в общем случае нет.

Но, я не хочу быть не правильно понятым: исключения — отличная концепция, в добавок присутствует почти во всех языках, хоть компилируемых, хоть скриптовых. Просто их нужно крайне аккуратно использовать и быть готовым мириться с гетерогенной природой некоторых исключений. У меня искаженное их восприятие, потому, что, я регулярно вижу отвратительные способы их использования (не тут), и в основной массе работаю с кодом без исключений (C++). Но по моим наблюдениям, средний код ничего не потеряет если не будет их использовать даже на C#. Ну а с точки зрения перфоманса, то т.н. "zero-cost exceptions" — они зеро только по отношению к setjmp, а так, они всегда хуже кода на кодах ошибок. Протаскивание кодов на верх — это такой миф. Ну и конечно же просто рекорды от души пороть в C# (не струкуры) — это хуже чем исключения, надо бить по рукам ногами за такое.

PS: Мне можно не отвечать. Это просто мое мнение. Я отвечать не буду. Я даже читать не буду. Я за 2 месяца зашел сюда впервые.