Kotlin-js中是否有适当的方法来全局捕获未处理的异常?

我已经对window.onerror进行了一般性尝试(请参见下文)。
唯一报告的错误是在non_existing_function2上,但在其他2种情况下均未报告任何错误。

有指导吗?
谢谢

window.onerror = { msg, url, line, col, error ->
   window.alert(“Error: $msg \nurl: $url\nline: $line\ncol: $col\nerror: $error”)
   true
}
async {
   throw Exception(“generated”)
}
async {
   js(“non_existing_function1();”)
}

js("non_existing_function2();")

最佳答案

您正在使用的Kotlin中的 async 定义为

fun <T> async(block: suspend CoroutineScope.() -> T): Deferred<T>

Deferred 是有状态的,不会在任何地方传播异常。您可以使用async { ... }.asPromise()桥接到JavaScript并传播拒绝以正确处理它。

10-07 19:24
查看更多