是否可以在UncaughtExceptionHandler中运行java线程?

时间:2015-01-05 10:09:32

标签: java multithreading

是否可以通过执行下一步来恢复java线程?

Thread.setDefaultExceptionHandler(new UncaughtExceptionHandler() {
    public void unchaughtException(Thread t, Throwable e) {
        t.start();
    }
});

2 个答案:

答案 0 :(得分:4)

是的,可以在Thread中运行Thread.UncaughtExceptionHandler.uncaughtException ...,前提是Thread尚未启动。

但是无法启动作为Thread参数传递的t。这将(始终)是已经启动并已终止的Thread

您最多只能启动一次Thread。如果您尝试再次启动一次,您将获得InvalidStateException。总是

答案 1 :(得分:2)

不,您无法运行引发异常的线程,如代码所示。它已经运行了。这就是它如何抛出异常。线程不能多次启动。