rethrows означает: функция сама не бросает, но может пробросить ошибку из переданного throwing closure.
Разбор
- Пример:
map на последовательности.
- Позволяет вызывать без
try, если closure не throws.
- Важен для библиотек высшего порядка.
- Сигнатура честно отражает источник ошибки.
Итог
rethrows сохраняет удобство API при опциональной ошибке колбэка.