Мне кажется, это противоречит самой идее декларативного программирования. Для одного и того же набора входных данных функция всегда должна возвращать одинаковый результат. Когда функция падает и возвращает другой результат, это отчасти убивает детерминированость.
Мне кажется эту логику нужно сделать на другом уровне, а в UI функцию просто отдавать готовый результат. Т.е. делать выбор что рисовать заранее, а не в самой компоуз функции
Спасибо капитан очевидность :) Только в реальности данные которые мы отображаем могут оказаться немного кривыми и мы не предусмотрели это в процессе подготовки и хотелось бы иметь возможность не крашить приложение из-за этого а как-то более user-friendly обрабатывать ситуацию
Ну, выше уже написали -- фиксите на уровне выше 🙂 Заодно и протестируете нормально.
Да не всё можно предусмотреть
мне даже интересно стало, сам не могу придумать такой случай (наврено опыта не хватает), можете пример привести?
Люди пишут композаблы без try/catch, и ничего не ломается. Да и Котлин предоставляет кучу инструментов для безопасного кода. Все можно предусмотреть при желании и правильной архитектуре бизнес-логики 🙂
весь стейт Any, а при отрисовке приводить типы)
Обсуждают сегодня