Re[3]: Парадигма работы с исключениями
От: IT Россия linq2db.com
Дата: 13.08.10 18:00
Оценка: +2
Здравствуйте, 0K, Вы писали:

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


0K>Это связано. Прямая связь есть.


Можно выдумать любую связь, только зачем?

0K>Мои программы, к примеру, никогда не обрабатывают аппаратные (системные) исключения. И таких программ большинство.

0K>Но нет возможности узнать аппаратное это исключение или нарушение контракта.

А какая разница с точки зрения поведения твоей программы?

IT>>Тогда останется только два варианта: реагируем на исключение или не реагируем.

0K>Реагировать можно по разному. Если аппаратное -- просто занесение в лог (попытка).
0K>Если кривой код -- срочное оповещение программиста. Причем он будет на 100% знать, что это кривой код и его проблема, а не проблема, скажем, оборудования клиента или стороннего сервиса.

Не пойму. Ты хочешь сказать, если, например, сервер упал по причине аппаратного сбоя, то и фиг с ним. А если он же упал по причине кривого кода, то нужно срочно оповестить программиста? Я думаю, если сервер упал, то нужно прежде всего оповестить службу поддержки и предоставить ей всю исчерпывающую информацию, а уж она решить что с этим всем делать: поднимать на уши админов или программистов.

0K>Но нет возможности отличить кривой код от аппаратных или проблем обработки данных.


И особо не надо.

IT>>При этом неважно, либо это ошибка пользователя, либо сбой в системе или что-то ещё.


0K>Важно. Еще как важно.


В каких-то сценариях, например, с программами архивирования, возможно это и важно. Для большинства обычных приложений совершенно безразлично.

IT>>По твоей классификации получается, что тип ошибок #1 для твоей программы ожидаем и, соответственно, мы такие ошибки обрабатываем.


0K>Да. Причем если возникла ошибка данных, значит что-то не так с данными или порядком их обработки.


Сами данные и порядок их обработки вообще-то разные вещи. Валидация как раз предназначена для того, что убедиться в правильности входных данных. Возможные глюки в порядке обработке она проверить не может никак.

IT>>А системные ошибки вроде закончилось место на диске для твоей программы являются фатальными.

0K>Нет. Я такого не говорил, это вы придумали.
0K>Как поступать с системными ошибками -- решает программа. В 90% случаев она ничего сделать не сможет. Просто занесет в лог. И естественно, Если ошибка системная -- ей лучше закрыться.

Ну то есть являются фатальными

0K>Но если программа работает на уровне системы -- она может обработать эту ошибку.


Какая разница? Не важно на каком уровне ошибка или программа и как их классифицировать. Важно лишь то, как программа собирается реагировать на то или иное вполне конкретное исключение.
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Парадигма работы с исключениями
От: IT Россия linq2db.com
Дата: 13.08.10 18:45
Оценка:
Здравствуйте, 0K, Вы писали:

0K>1. Soft

0K>2. Hard.

По мне так Application / System гораздо удобней.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Парадигма работы с исключениями
От: 0K Ниоткуда  
Дата: 17.08.10 09:12
Оценка:
Здравствуйте, IT, Вы писали:

IT>Можно выдумать любую связь, только зачем?


Не стал отвечать, т.к. последние несколько страниц переливаете из пустого в порожнее. Здесь нужно разговаривать на примерах, а не абстрактно.
=сначала спроси у GPT=
Re[4]: Парадигма работы с исключениями
От: 0K Ниоткуда  
Дата: 17.08.10 09:32
Оценка:
Здравствуйте, IT, Вы писали:

IT>По мне так Application / System гораздо удобней.


А что удобнее то? От ApplicationException теперь не рекомендуют наследоваться. SystemException -- никак не связаны с низкоуровневыми системными исключениями. Иерархии никакой нет...
=сначала спроси у GPT=
Re: Парадигма работы с исключениями
От: rm822 Россия  
Дата: 17.08.10 23:39
Оценка:
0K>Это очень важно.
Не верю (С)
Кому важно и в чем именно важность?

0K>Что вы думаете о такой структуризации?

Useless. Где бонусы?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.