История изменений
Исправление tailgunner, (текущая версия) :
Ты говорил, что в C++ если у функции нет noexcept
Rust 1.9 (комментарий), первый абзац.
Остальное - это (неудачная) попытка объяснить тебе эту простую вещь.
На что я попросил привести примеры того, где знание о типах выбрасываемых функцией исключений было бы полезно.
Приведи, пожалуйста.
Обработка ошибок, которая зависит от того, какая именно ошибка случилась (не сводящаяся к «напечатать сообщение и сделать rethrow»). Например, делаешь ты что-то с ФС, и вылетает ошибка - если это EACCESS, то приплыли, если ENOSPACE - можно почистить временные файлы и повторить.
Речь не о том, чтобы похерить возвращаемое значение. А о том, что видя прототип T accumulate(begin, end, init, functor) ты видишь столько же информации, как и в случае прототипа Result<T,Error> accumulate(begin, end, init, functor).
Если обе accumulate - на Си++.
Исходная версия tailgunner, :
Ты говорил, что в C++ если у функции нет noexcept
Остальное - это (неудачная) попытка объяснить тебе эту простую вещь.
На что я попросил привести примеры того, где знание о типах выбрасываемых функцией исключений было бы полезно.
Приведи, пожалуйста.
Обработка ошибок, которая зависит от того, какая именно ошибка случилась (не сводящаяся к «напечатать сообщение и сделать rethrow»). Например, делаешь ты что-то с ФС, и вылетает ошибка - если это EACCESS, то приплыли, если ENOSPACE - можно почистить временные файлы и повторить.
Речь не о том, чтобы похерить возвращаемое значение. А о том, что видя прототип T accumulate(begin, end, init, functor) ты видишь столько же информации, как и в случае прототипа Result<T,Error> accumulate(begin, end, init, functor).
Если обе accumulate - на Си++.