Я делаю интерпретатор языка Prolog. Язык основан на рекурсии, и неправильно написанные программы часто приводят к переполнению стека. Когда запускал свой интерпретатор из приложения JavaFX я заметил, что JavaFX может обнаруживать StackOverflowError в потоке и обрабатывать его.
Как самому сделать что-то подобное, чтобы определить StackOverflowError, выброшенный в другом потоке и обработать его?
В общем случае я бы посоветовал данную задачу (перехват ожидаемого исключения) возложить на сам поток, но если это не возможно по каким либо причинам:
@Override
public void start(Stage primaryStage) {
Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
См. setDefaultUncaughtExceptionHandler, UncaughtExceptionHandler
Правка (после предоставления исходных кодов):
Внутри установленного UncaughtExceptionHandler
:
Platform.runLater(() -> errorsOutput.runtimeException(new RuntimeException("Error in program thread", throwable)));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
решал алгоритм и вот встала задача решить алгоритм на вход дается массив чисел надо найти наибольшее произведение смежных чисел я решил...
На активности есть ListView и EditTextListView с множественным выбором