Kotlin JS глобально обрабатывает необработанные исключения - PullRequest
0 голосов
/ 02 июня 2018

Есть ли правильный способ в 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();")

1 Ответ

0 голосов
/ 02 июня 2018

async в Kotlin , который вы используете, определяется как

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

Где Deferred с состоянием ине распространяет исключение нигде.Вы можете использовать async { ... }.asPromise(), чтобы соединиться с JavaScript и распространить отказ для правильной обработки.

...