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