Kotlin 协程异常,聚合异常 多个异常的处理
Posted 安果移不动
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin 协程异常,聚合异常 多个异常的处理相关的知识,希望对你有一定的参考价值。
@Test
fun `test exception aggregation`() = runBlocking<Unit>
val coroutineExceptionHandler = CoroutineExceptionHandler _, exception ->
println("Caught $exception $exception.suppressed.contentToString()")
val job = GlobalScope.launch(coroutineExceptionHandler)
launch
try
delay(Long.MAX_VALUE)
finally
throw ArithmeticException()
launch
try
delay(Long.MAX_VALUE)
finally
throw IndexOutOfBoundsException()
launch
delay(100)
throw IOException()
job.join()
以上是关于Kotlin 协程异常,聚合异常 多个异常的处理的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 协程协程异常处理 ⑤ ( 异常传播的特殊情况 | 取消子协程示例 | 子协程抛出异常后父协程处理异常时机示例 | 异常聚合 | 多个子协程抛出的异常会聚合到第一个异常中 )
Kotlin 协程协程异常处理 ③ ( 协程异常处理器 CoroutineExceptionHandler 捕获异常 | 验证 CoroutineScope 协程的异常捕捉示例 )
Kotlin 协程协程异常处理 ③ ( 协程异常处理器 CoroutineExceptionHandler 捕获异常 | 验证 CoroutineScope 协程的异常捕捉示例 )
Kotlin 协程协程异常处理 ② ( SupervisorJob 协程 | supervisorScope 协程作用域构建器函数 )
Kotlin 协程协程异常处理 ② ( SupervisorJob 协程 | supervisorScope 协程作用域构建器函数 )
Kotlin 协程协程异常处理 ① ( 根协程异常处理 | 自动传播异常 | 在协程体捕获异常 | 向用户暴露异常 | 在 await 处捕获异常 | 非根协程异常处理 | 异常传播特性 )