Sobes.tech
Junior — Middle

Como é que é feita a gestão de erros nos fluxos de dados (Flow)?

sobes.tech IA

Resposta da IA

No Kotlin Flow, o tratamento de erros é feito usando o operador catch, que intercepta exceções que ocorrem no fluxo de dados. Isso permite tratar o erro, por exemplo, registrando um log, substituindo o elemento com erro ou encerrando o fluxo com uma ação específica.

Exemplo:

flowOf(1, 2, 0, 4)
    .map { 10 / it } // ao dividir por 0 ocorrerá uma exceção
    .catch { e -> emit(-1) } // em caso de erro, emitimos -1
    .collect { value -> println(value) }

Também é possível usar o operador onCompletion para executar ações após a conclusão do fluxo, incluindo o tratamento de erros.