我有一个简单的设置:
lifecycleScope.launch {
val result = test()
}
suspend fun test(): Result<Unit> = withContext(Dispatchers.IO) {
Result.failure(IllegalStateException("QWER"))
}
实际结果: 上述代码出现了崩溃: java.lang.IllegalStateException: QWER
预期结果: 成功返回结果对象
我正在使用Kotlin 1.4.10和Coroutines 1.3.9,使用Kotlin.Result对象作为返回类型,代码如下:
kotlinOptions {
freeCompilerArgs = ["-Xallow-result-return-type"]
}
另外一件事是,如果我使用主线程上下文(Dispatchers.Main)执行协程,一切都按预期工作。