что происходит, когда Поток выдает Исключение?

11
задан Hearen 29 May 2018 в 13:50
поделиться

3 ответа

Если для ThreadGroup установлен обработчик исключений, JVM передает ему исключение. Если это поток AWT, вы можете установить обработчик событий для необработанных в противном случае исключений. В противном случае его обрабатывает JVM.

Пример группы потоков с настраиваемым обработчиком и способы его использования:

public class MyThreadGroup extends ThreadGroup {
    public MyThreadGroup() {
        super("My Thread Group");
    }
    public void uncaughtException(Thread t, Throwable ex) {
        // Handle exception
    }
}

Thread t = new Thread(new MyThreadGroup(), "My Thread") { ... };
t.start();

Пример использования обработчика исключений AWT:

public class MyExceptionHandler {
    public void handle(Throwable ex) {
        // Handle exception
    }
    public void handle(Thread t, Throwable ex) {
        // Handle exception
    }
}

System.setProperty("sun.awt.exception.handler", MyExceptionHandler.class.getName());
9
ответ дан 3 December 2019 в 10:04
поделиться

Если вы отправили Runnable в ExecutorService , вы можете перехватить исключение как заключенное внутри ExecutionException . (Настоятельно рекомендуется вместо простого вызова run ())

1
ответ дан 3 December 2019 в 10:04
поделиться

Возможно, если вы назначите его ThreadGroup , которая реализует метод uncaughtException (Thread, Throwable) .

0
ответ дан 3 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: