Re[3]: Когда стоит и не стоит использовать исключения?
От: Trean Беларусь http://axamit.com/
Дата: 24.01.06 16:00
Оценка:
Здравствуйте, Spaider, Вы писали:

S>Здравствуйте, Trean, Вы писали:


T>>и я вообщем-то с этим согласен: исключение — это исключительная ситуация в приложении в большинстве случаев свидетельствующая о неправильной логике работы приложения.


S>А я вот не согласен с твоим утверждением. Возбуждение исключения должно свидетельствовать как раз об обратном -- о том, что произошла ситуация, предполагаемая логикой программы, но от оной не зависящая. То бишь, если у тебя в процессе передачи данных по сети пропала связь, это ведь ни в коем случае не баг в твоей программе. Однако предусмотреть такую ситуацию необходимо.


Вы либо прочитали невнимательно, либо не совсем меня поняли. Потому что я с вами тоже согласен :) Я имел ввиду кидание исключений во внутренней логике не всегда правильно. При разрыве соединения, например, с базой, вы можете попытаться например его восстановить, или корректно освободить ресурс, попутно записав ошибку в лог. При разрыве связи по сети вы можете попробовать передать данные еще раз, или инициировать новое соединение на другой порт или еще что-то "полезное". А если у вас в коде выбросилось исключение вроде "деления на ноль", то что вы будете с ним делать? В ряде случаев у вас нет способов догадаться, что надо сделать, чтобы исправить ситуацию, какое значение у того или иного параметра переданного пользователем должно быть. Прог телепатов я еще не встречал :-) "Решение" в виде подстановки значения по умолчанию, это лишь попытка скрыть проблему в логике или исходных данных. Повторюсь, если вы ничего не можете обработать исключение, и лишь модете кинуть его на более высокий уровень или записать в лог, не используйте checked исключений. И не я один так думаю, я убедился в этом на своем опыте, checked исключения полезны в ограниченном количестве случаев.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.