Re[28]: Какие у исключений проблемы?
От: AlexRK  
Дата: 15.11.14 12:12
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

ARK>>Получается, что "простые случаи" — это когда мы просто игнорируем потенциальную ошибку.

DE>Далеко не всегда это проблема.
DE>На мой взгляд, у ошибок всё-таки степень важности разная бывает. Некоторые можно и проигнорировать ("подумаешь файл не закрылся").

Все-таки, RAII это библиотечный код, как ни крути. И он за меня сразу принимает решение, что ошибки при финализации надо игнорировать. При этом он, вообще говоря, не знает, что действительно можно проигнорировать, а что нельзя. А потом поверх этого кода пишется тонна другого кода. В результате, если мне все-таки _надо_ среагировать на ошибку закрытия файла, то иного варианта, кроме как переписать вообще все это, не существует.

ARK>>Это уже другой вопрос. Что там наверху, мы не знаем и не хотим знать. Главное, что свой код у нас написан корректно.

DE>А я-то думал, что главное — это корректность работы программы в целом.

Это, конечно, главное.
Но причем тут стратегия работы с ошибками в самом низу? Наш код в большинстве случаев не знает, что делать с ошибкой. Он просто должен сообщить о ней наверх. А если мы ошибку всегда глотаем, то тем самым принимаем политическое решение, полномочий на которое у нас нет.

DE>Ну и получим при вызове функции кучу "ошибок" "не удалось записать в лог", например.


ИМХО, это лучше, чем не получить ничего и тихо-мирно работать дальше, не зная, что уже что-то пошло не так.
Хотя, конечно, это зависит от приложения.
Но сам подход "замалчивания" мне не нравится.

Я понимаю, что ошибки закрытия файлов или сетевых соединений довольно редкие и обычно их можно просто игнорировать. И что написана куча кода с RAII и он работает (?). Но сам фундамент этого подхода, ИМХО, ущербен (прошу прощения за эмоциональную "подачу" ).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.