J: Как ПРАВИЛЬНО обрабатывать ошибки в Kotlin и Java? Что я понял за 15 лет программирования - видео HD

J: Как ПРАВИЛЬНО обрабатывать ошибки в Kotlin и Java? Что я понял за 15 лет программирования - видео
00:16:11
Обнаружено блокирование рекламы на сайте

Для существования нашего сайта необходим показ рекламы. Просим отнестись с пониманием и добавить сайт в список исключений вашей программы для блокировки рекламы (AdBlock и другие).

12n.ru 19173 ролика

Как ПРАВИЛЬНО обрабатывать ошибки в Kotlin и Java? Что я понял за 15 лет программирования - видео.

Рассказываем, как удобнее всего обрабатывать исключения и нештатные ситуации в Kotlin и других языках и почему стандартные исключения не всегда лучший вариант.

Ссылки на материалы:

Checked exceptions in Kotlin https://kotlinlang.org/docs/java-to-k...

Either (ArrowKt) https://arrow-kt.io/learn/typed-error...

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-0...

Result для Python (Returns)https://returns.readthedocs.io/en/lat...

Правило для Detekt https://detekt.dev/docs/rules/potenti...

Тайм-коды для самых нетерпеливых:00:00 Введение00:30 Базовый пример01:41 Способы обработки ошибок03:15 Проверяемые VS Непроверяемые исключения06:26 Код возврата как волшебная пилюля07:20 Больше данных! Как передать инфо об ошибке08:56 Успех — не ошибка, а много ошибок — не успех09:44 Мощь Arrow11:40 Railway Oriented Programming13:27 Альтернатива из стандартной библиотеки Kotlin13:59 Другие языки программирования14:14 Исключения тоже нужны15:31 Лечим забывчивость (и потерянный код возврата)15:55 Заключение

Поваренная книга Дядюшки Боба: howto.stringconcat.ru/cleanar... Телеграмм-канал с кучей полезной информации: t.me/stringconcat

RSS
@kamegatze6568
12:52
+1
Спасибо за видео, реально интересно
@SirDratuti
16:22
+1
А почему бы просто не использовать sealed interface как наследник другого sealed interface'а?
sealed interface PaymentResult
data class Success(...): PaymentResult
sealed interface Error: PaymentResult
data class AccountNotFound(...): Error
и так далее
В таком случае нам не нужно будет при необходимости маппинга ошибки в какой-либо объект делать специфичный кейс для состояния Success, ведь мы просто можем передать ошибку с типом PaymentResult.Error
@lis0x90d
18:16
Scala которая как раз попыталась обединить функционалный и обьектный подход. Очередной виток переизобретения
@voult89
17:24
Подход с Either прикольный, но вот пока столкнулся с такой проблемой, что когда обновляю агрегат, приходится обновлять и его поля. Ну а каждое поле содержит логику обновления у себя, как и валидацию. В итоге метод обновления агрегата состоит из fold или onLeft/onRight.
Читать порой сложно такое. Пока не знаю как сделать красиво.

Что касается необрабатываемых ошибок, то на маленьком проекте лучше использовать их, так как тут сам написал — сам обработал.
Ну и если не чистая архитектура, тогда ошибки можно еще и наследовать от нужного типа (unporcessable, notfound, итд). И в обработчике ошибок ловить по дефолту нужный тип.
@MentorOfMentors
17:31
13:04 опечатка? UserUser
@spacecowboy3000
22:19
Йо это реально крутой канал, а можно плюс ещё каких нибудь серебрянных пуль. Я просто занимаюсь легаси на 8 джаве в тяжёлом интерпрайзе. И уже слабо представляю как выглядит современный продуктовый джава код.

Новости

«СёрчИнформ SIEM» интегрирована с почтовым сервером RuPost Рынок DLP-систем в Центральной Азии: как законы о суверенитете данных стимулируют спрос на локальные решения «СёрчИнформ КИБ» расширил возможности «открытого контроля» для ПК на Linux «РИКИТЛАБ» представила новую модель техподдержки ИТ-инфраструктуры промышленных предприятий MWS Cloud расширяет линейку ИИ-сервисов доступом к крупнейшей опенсорсной LLM

«СёрчИнформ SIEM» интегрирована с почтовым сервером RuPost


1 день назад
«СёрчИнформ SIEM» интегрирована с почтовым сервером RuPost
«СёрчИнформ SIEM» интегрирована с почтовым сервером RuPost
Рынок DLP-систем в Центральной Азии: как законы о суверенитете данных стимулируют спрос на локальные решения
Рынок DLP-систем в Центральной Азии: как законы о суверенитете данных стимулируют спрос на локальные решения
«СёрчИнформ КИБ» расширил возможности «открытого контроля» для ПК на Linux
«СёрчИнформ КИБ» расширил возможности «открытого контроля» для ПК на Linux
«РИКИТЛАБ» представила новую модель техподдержки ИТ-инфраструктуры промышленных предприятий
«РИКИТЛАБ» представила новую модель техподдержки ИТ-инфраструктуры промышленных предприятий
MWS Cloud расширяет линейку ИИ-сервисов доступом к крупнейшей опенсорсной LLM
MWS Cloud расширяет линейку ИИ-сервисов доступом к крупнейшей опенсорсной LLM