catch

abstract fun catch(action: (CoroutineScope, FlowCollector<T>, Throwable) -> Job): Flow<T>

捕获上游 Flow 中发生的异常。

当上游发生异常时,action 会被调用。你可以选择发出替代值、重新抛出异常或记录日志。

重要:此操作符只捕获上游的异常,不会捕获下游的异常。

Return

一个应用了异常处理逻辑的新 Flow。

Parameters

action

一个在发生异常时执行的函数,它接收一个 FlowCollector 和异常,并返回一个 Job