阅读量:4
在 Kotlin 中,处理流(Flow)中的异常主要有两种方法:使用 catch 操作符或使用 onEach 和 launchIn 结合 try-catch
方法 1:使用 catch 操作符
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.*
fun main() = runBlocking {
simpleFlow()
.catch { e -> println("捕获到异常: $e") }
.collect { value -> println("收集到的值: $value") }
}
fun simpleFlow(): Flow<Int> = flow {
emit(1)
emit(2)
throw RuntimeException("流处理异常")
emit(3)
}
方法 2:使用 onEach 和 launchIn 结合 try-catch
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.*
fun main() = runBlocking {
simpleFlow()
.onEach { value ->
try {
// 在这里处理值,可能会抛出异常
println("收集到的值: $value")
} catch (e: Exception) {
println("捕获到异常: $e")
}
}
.launchIn(this)
}
fun simpleFlow(): Flow<Int> = flow {
emit(1)
emit(2)
throw RuntimeException("流处理异常")
emit(3)
}
在这两个示例中,我们都创建了一个简单的流,该流在发射第三个值时会抛出一个异常。在第一个示例中,我们使用 catch 操作符捕获异常并处理它。在第二个示例中,我们使用 onEach 操作符处理每个值,并在其中使用 try-catch 语句来捕获和处理异常。
以上就是关于“Kotlin流如何处理异常”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm