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并传播拒绝以正确处理它。