💻 Поваренная книга Дядюшки Боба: https://howto.stringconcat.ru/cleanarchitecture?utm_source=youtube&utm_medium=video&utm_campaign=error_handling
🎯 Телеграмм-канал с кучей полезной информации: https://t.me/stringconcat
Рассказываем, как удобнее всего обрабатывать исключения и нештатные ситуации в Kotlin и других языках и почему стандартные исключения не всегда лучший вариант.
Ссылки на материалы:
► Checked exceptions in Kotlin
https://kotlinlang.org/docs/java-to-kotlin-interop.html#checked-exceptions
► Either (ArrowKt)
https://arrow-kt.io/learn/typed-errors/either-and-ior/
► Railway Oriented Programming
https://habr.com/ru/articles/339606/
► Either для Java (Vavr)
https://docs.vavr.io/#_either
► Обработка ошибок в Rust
https://doc.rust-lang.org/book/ch09-02-recoverable-errors-with-result.html
► Result для Python (Returns)
https://returns.readthedocs.io/en/latest/pages/result.html
► Правило для Detekt
https://detekt.dev/docs/rules/potential-bugs/#ignoredreturnvalue
Тайм-коды для самых нетерпеливых:
00:00 Введение
00:30 Базовый пример
01:41 Способы обработки ошибок
03:15 Проверяемые VS Непроверяемые исключения
06:26 Код возврата как волшебная пилюля
07:20 Больше данных! Как передать инфо об ошибке
08:56 Успех - не ошибка, а много ошибок - не успех
09:44 Мощь Arrow
11:40 Railway Oriented Programming
13:27 Альтернатива из стандартной библиотеки Kotlin
13:59 Другие языки программирования
14:14 Исключения тоже нужны
15:31 Лечим забывчивость (и потерянный код возврата)
15:55 Заключение