Sobes.tech
Junior — Middle

Маалымат агымдарында (Flow) каталардын иштетилиши кандай жүргүзүлөт?

sobes.tech AI

AIден жооп

Kotlin Flow'до каталардын иштетилиши catch оператору менен жүргүзүлөт, ал маалымат агымында пайда болгон исключенияларды кармайт. Бул катаны иштетүүгө мүмкүндүк берет, мисалы, лог жазуу, каталык элементти алмаштыруу же агымды белгилүү бир аракет менен аяктоо.

Мисал:

flowOf(1, 2, 0, 4)
    .map { 10 / it } // бөлүүдө 0 менен бөлүүдө исключение пайда болот
    .catch { e -> emit(-1) } // каталарда -1 чыгарабыз
    .collect { value -> println(value) }

Ошондой эле, onCompletion операторун колдонуп, агым бүтүп жатканда аракеттерди аткарууга болот, анын ичинде каталардын иштетилиши да бар.