catch(e:Exception)为什么捕获不到 ,2,顶层无论加不加supervisorScope 都不打印println("1 Exception")
来源:7-8 协程的异常处理2

steaywengwu
2020-12-04
//try catch
suspend fun myExceptionPath() {
try {
GlobalScope.launch(
CoroutineExceptionHandler { contex, throwable ->
println(“1 Exception”)
})
{
supervisorScope {
val job = GlobalScope.launch(
/CoroutineExceptionHandler { contex, throwable ->
println(“2 Exception”)
}/
)
{
println("=======2")
throw NullPointerException(“eeeeeeeee”)
}
job.join()
}
}.join()
} catch (e: Exception) {
println("ex=============")
// println(e)
}
println("======")
}
写回答
1回答
-
bennyhuo
2020-12-04
supervisorScope {
val job = GlobalScope.launch(GlobalScope 会直接无视你前面的 superviseScope,不管在哪儿写的 GlobalScope.launch,都是启动顶级协程。
---
另外建议注意下代码排版,不然就算我想帮你解决问题,也得费老大劲才能看清楚你的缩进。。。
00
相似问题