LINUX.ORG.RU

История изменений

Исправление 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

Rust 1.9 (комментарий)

Остальное - это (неудачная) попытка объяснить тебе эту простую вещь.

На что я попросил привести примеры того, где знание о типах выбрасываемых функцией исключений было бы полезно.

Приведи, пожалуйста.

Обработка ошибок, которая зависит от того, какая именно ошибка случилась (не сводящаяся к «напечатать сообщение и сделать rethrow»). Например, делаешь ты что-то с ФС, и вылетает ошибка - если это EACCESS, то приплыли, если ENOSPACE - можно почистить временные файлы и повторить.

Речь не о том, чтобы похерить возвращаемое значение. А о том, что видя прототип T accumulate(begin, end, init, functor) ты видишь столько же информации, как и в случае прототипа Result<T,Error> accumulate(begin, end, init, functor).

Если обе accumulate - на Си++.