Логических ошибок в коде больше нет, только инсайты:
⏩Исключения не подходят для логических ошибок — они теряют контекст, плохо типизируются и могут пересекаться с ошибками сторонних библиотек
⏩Лучше использовать
Either (или кастомный `Result`) — они явно декларируют ошибки в сигнатуре метода, улучшают читаемость и контроль исполнения кода⏩Нужно разделять системные и логические ошибки — все логические ошибки системы могут быть удобно типизированы
⏩Четкая иерархия ошибок делает код понятнее. Строгая типизация исключает хаос и необходимость
try-catch на каждом шаге⏩Использование
Either вместе с его удобным DSL упрощает код. Работа с ошибками становится декларативной, код читается лучше, а обработка становится удобнее💭Запись доклада
