Смотри не во всех языках принято работать с эксепшенами, например банально функция может возвращать ошибку, которую ты можешь обработать, по смыслу это тоже самое.
(result, err) = requestForProducts(345,2321,5467)
if(err) showErrMessageForUser(err.cause)
вот сейчас приведу грубый пример использования этой конструкции, он правильный будет?
например, пользователь на сайт нужно загрузить изображение только формата png, а он загружает формат gif. в этом случае мы можем предугадать, что пользователь может загрузить на сайт другие расширения изображений, поэтому в этом случае catch сообщит ему, пользователю, что нужно заружать изоображения только формата png.