Выбор ответа Middle Clean Architecture и слои обновлено
Ошибки на границах слоёв
Вопрос
Как правильно передавать ошибки из data-слоя в presentation?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Data переводит технические ошибки (HTTP-коды, исключения библиотек) в доменные, а UI решает показ. Если HttpException или URLError доходит до view model, presentation начинает зависеть от сетевой библиотеки, а тексты ошибок становятся случайными.
Варианты ответа
- Data переводит технические ошибки (HTTP-коды, исключения библиотек) в доменные, а UI решает показправильный ответ
- Пробрасывать
HttpExceptionRetrofit до view: так экран покажет точный код и тело ответа сервера - Глушить ошибки в репозитории и возвращать пустые данные, чтобы экран не падал
- Показывать пользователю текст исключения как есть, чтобы он мог сообщить его в поддержку
Разбор
Если HttpException или URLError доходит до view model, presentation начинает зависеть от сетевой библиотеки, а тексты ошибок становятся случайными. Доменные ошибки (NoConnection, SessionExpired, NotFound) понятны всем слоям, а view model превращает их в UI: экран ошибки, тост, повтор. Глушить ошибки опасно: пользователь видит пустой экран без причины.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Clean Architecture и слои»
- Правило зависимостей в Clean Architecture
- Что можно импортировать в domain-слой
- Инверсия зависимостей
- Слои мобильного приложения
- Сколько моделей нужно на сущность
- Путь действия пользователя через слои
- Когда Clean Architecture избыточна
- Где объявлять интерфейс репозитория