Представьте ожидаемые ошибки как типизированные значения Result/Either и сопоставляйте их по kind, отделяя их от неожиданных исключений.
Приложение постоянно выбрасывает исключения, которые нужно разделить по смыслу и доменной логике: например, доменные ошибки и ошибки соединения. Как бы вы решили это функциональным подходом?
Представьте ожидаемые ошибки как типизированные значения Result/Either и сопоставляйте их по kind, отделяя их от неожиданных исключений.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Представьте ожидаемые ошибки как типизированные значения Result/Either и сопоставляйте их по kind, отделяя их от неожиданных исключений.
Например, {ok:false,error:{kind:'network'}} и {ok:false,error:{kind:'validation',fields}} имеют разные обработчики. Сетевой адаптер переводит низкоуровневые сбои в понятный контракт, а UI выбирает отображение. Не превращайте неизвестный баг в успешный результат; неожиданные ошибки требуют отдельной регистрации и безопасного сообщения.