Бросок исключения (или, что еще лучше, Ошибка ) - это один из способов, но он не может завершить текущий поток: любая из вызывающих функций может перехватить исключение, или UncaughtExceptionHandler мог быть установлен для Thread (или его ThreadGroup ).
Также он не будет закрывать любые другие потоки, которые могут работать.(Даже если вы сами не запускали их, они используются сопрограммами, наборами графического интерфейса пользователя и другими средами исполнения.)
Чтобы завершить работу всего приложения, вы должны использовать Kotlin exitProcess()
функция, или в Kotlin / JVM эквивалентный System.exit()
метод.Это прервет все потоки.
Но даже это сделает «изящное» завершение работы, запустив все обработчики отключения, финализаторы и т. Д.Если вам нужно принудительно убить приложение Kotlin / JVM немедленно , позвоните Runtime.getRuntime().halt()
.
(И, конечно, рекомендуется сначала отобразить что-то длястандартный вывод или используемая среда ведения журнала, чтобы указать, в чем заключалась проблема.)