Вернуть 2 значения, успех или ошибка, идиоматическим способом?
Есть библиотека, которая по сути является оболочкой для API. Существует базовый частный метод make_request_to_server и многие другие, которые отправляют конкретные команды через базовый метод.
Какой идиоматический способ вернуть результат из метода, который отправляет запрос на удаленный сервер и может:
* throw an exception, as all methods
* return data, from a server
* return error, from a server
Клиенту, очевидно, необходимо знать, является ли результат успехом или ошибкой, а если ошибка, то какой ошибкой.
Не рассматриваю сторонние библиотеки.
Подойдет что-то похожее на Either monad или что-то подобное и попроще.
Я знаю, что могу вернуть 2 значения или хэш {result:, error:}, но будут ли они идиоматическими?