Здравствуйте, 0K, Вы писали:
IT>>Важно не то по какой причине возникают исключения, а то какая реакция на них возможна, т.к. как их следует обрабатывать.
0K>Это связано. Прямая связь есть.
Можно выдумать любую связь, только зачем?
0K>Мои программы, к примеру, никогда не обрабатывают аппаратные (системные) исключения. И таких программ большинство.
0K>Но нет возможности узнать аппаратное это исключение или нарушение контракта.
А какая разница с точки зрения поведения твоей программы?
IT>>Тогда останется только два варианта: реагируем на исключение или не реагируем.
0K>Реагировать можно по разному. Если аппаратное -- просто занесение в лог (попытка).
0K>Если кривой код -- срочное оповещение программиста. Причем он будет на 100% знать, что это кривой код и его проблема, а не проблема, скажем, оборудования клиента или стороннего сервиса.
Не пойму. Ты хочешь сказать, если, например, сервер упал по причине аппаратного сбоя, то и фиг с ним. А если он же упал по причине кривого кода, то нужно срочно оповестить программиста? Я думаю, если сервер упал, то нужно прежде всего оповестить службу поддержки и предоставить ей всю исчерпывающую информацию, а уж она решить что с этим всем делать: поднимать на уши админов или программистов.
0K>Но нет возможности отличить кривой код от аппаратных или проблем обработки данных.
И особо не надо.
IT>>При этом неважно, либо это ошибка пользователя, либо сбой в системе или что-то ещё.
0K>Важно. Еще как важно.
В каких-то сценариях, например, с программами архивирования, возможно это и важно. Для большинства обычных приложений совершенно безразлично.
IT>>По твоей классификации получается, что тип ошибок #1 для твоей программы ожидаем и, соответственно, мы такие ошибки обрабатываем.
0K>Да. Причем если возникла ошибка данных, значит что-то не так с данными или порядком их обработки.
Сами данные и порядок их обработки вообще-то разные вещи. Валидация как раз предназначена для того, что убедиться в правильности входных данных. Возможные глюки в порядке обработке она проверить не может никак.
IT>>А системные ошибки вроде закончилось место на диске для твоей программы являются фатальными.
0K>Нет. Я такого не говорил, это вы придумали.
0K>Как поступать с системными ошибками -- решает программа. В 90% случаев она ничего сделать не сможет. Просто занесет в лог. И естественно, Если ошибка системная -- ей лучше закрыться.
Ну то есть являются фатальными
0K>Но если программа работает на уровне системы -- она может обработать эту ошибку.
Какая разница? Не важно на каком уровне ошибка или программа и как их классифицировать. Важно лишь то, как программа собирается реагировать на то или иное вполне конкретное исключение.
0K>Это очень важно.
Не верю (С)
Кому важно и в чем именно важность?
0K>Что вы думаете о такой структуризации?
Useless. Где бонусы?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>