Выбор ответа Middle Clean Architecture и слои обновлено

Ошибки на границах слоёв

Вопрос

Как правильно передавать ошибки из data-слоя в presentation?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Data переводит технические ошибки (HTTP-коды, исключения библиотек) в доменные, а UI решает показ. Если HttpException или URLError доходит до view model, presentation начинает зависеть от сетевой библиотеки, а тексты ошибок становятся случайными.

Варианты ответа

  1. Data переводит технические ошибки (HTTP-коды, исключения библиотек) в доменные, а UI решает показправильный ответ
  2. Пробрасывать HttpException Retrofit до view: так экран покажет точный код и тело ответа сервера
  3. Глушить ошибки в репозитории и возвращать пустые данные, чтобы экран не падал
  4. Показывать пользователю текст исключения как есть, чтобы он мог сообщить его в поддержку

Разбор

Если HttpException или URLError доходит до view model, presentation начинает зависеть от сетевой библиотеки, а тексты ошибок становятся случайными. Доменные ошибки (NoConnection, SessionExpired, NotFound) понятны всем слоям, а view model превращает их в UI: экран ошибки, тост, повтор. Глушить ошибки опасно: пользователь видит пустой экран без причины.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.