Информация об изменениях

Сообщение Re[27]: Какие у исключений проблемы? от 15.11.2014 11:49

Изменено 15.11.2014 11:55 DarkEld3r

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

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

Далеко не всегда это проблема.

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

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

ARK>Пока что у меня такое мнение: с точки зрения корректности, правильно всегда вызывать вручную все методы типа close и, в случае возникновения сбоя, передавать ошибку дальше (исключениями, кодами возврата или еще чем — неважно). Плюс система типов должна гарантировать вызов этих методов, чтобы нельзя было забыть их вызвать (хотя в С++ гарантировать это невозможно). Но идеальным такой вариант я назвать не могу.

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

На мой взгляд, у ошибок всё-таки степень важности разная бывает. Скажем, если мы понимаем, что всё — восстановиться нельзя, то завершаемся поскорее и всё. Ну а мелкие ошибки можно и проигнорировать ("подумаешь файл не закрылся"). Вряд ли, возможна система типов которая правильно это будет "понимать" и заставлять обрабатывать.
Re[27]: Какие у исключений проблемы?
Здравствуйте, AlexRK, Вы писали:

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

Далеко не всегда это проблема.

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

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

ARK>Пока что у меня такое мнение: с точки зрения корректности, правильно всегда вызывать вручную все методы типа close и, в случае возникновения сбоя, передавать ошибку дальше (исключениями, кодами возврата или еще чем — неважно). Плюс система типов должна гарантировать вызов этих методов, чтобы нельзя было забыть их вызвать (хотя в С++ гарантировать это невозможно). Но идеальным такой вариант я назвать не могу.

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

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