Здравствуйте, AlexRK, Вы писали:
ARK>Получается, что "простые случаи" — это когда мы просто игнорируем потенциальную ошибку.
Далеко не всегда это проблема.
ARK>Это уже другой вопрос. Что там наверху, мы не знаем и не хотим знать. Главное, что свой код у нас написан корректно.
А я-то думал, что главное — это корректность работы программы в целом.
ARK>Пока что у меня такое мнение: с точки зрения корректности, правильно всегда вызывать вручную все методы типа close и, в случае возникновения сбоя, передавать ошибку дальше (исключениями, кодами возврата или еще чем — неважно). Плюс система типов должна гарантировать вызов этих методов, чтобы нельзя было забыть их вызвать (хотя в С++ гарантировать это невозможно). Но идеальным такой вариант я назвать не могу.
Ну и получим при вызове функции кучу "ошибок" "не удалось записать в лог", например.
На мой взгляд, у ошибок всё-таки степень важности разная бывает. Некоторые можно и проигнорировать ("подумаешь файл не закрылся"). Вряд ли, возможна система типов которая правильно это будет "понимать" и заставлять обрабатывать.