Ответ
В Kotlin Flow для обработки исключений используются операторы catch и onCompletion:
catch- ловит исключения, возникшие выше по цепочке операторов:
flow { ... }
.catch { e ->
// Обработка исключения
emit(defaultValue)
}
.collect { ... }
onCompletion- вызывается при завершении Flow (успешном или с ошибкой):
flow { ... }
.onCompletion { cause ->
if (cause != null) {
// Было исключение
}
}
.collect { ... }
Также можно использовать try-catch вокруг вызовов collect, но это менее идиоматично для Flow.