是否可以通过执行下一步来恢复java线程?
Thread.setDefaultExceptionHandler(new UncaughtExceptionHandler() {
public void unchaughtException(Thread t, Throwable e) {
t.start();
}
});
答案 0 :(得分:4)
是的,可以在Thread
中运行Thread.UncaughtExceptionHandler.uncaughtException
...,前提是Thread
尚未启动。
但是无法启动作为Thread
参数传递的t
。这将(始终)是已经启动并已终止的Thread
。
您最多只能启动一次Thread
。如果您尝试再次启动一次,您将获得InvalidStateException
。总是
答案 1 :(得分:2)
不,您无法运行引发异常的线程,如代码所示。它已经运行了。这就是它如何抛出异常。线程不能多次启动。