在UncaughtExceptionHandler中运行Java线程是否可行?

3

通过下面的方法可以恢复Java线程吗?

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

4

是的,在Thread.UncaughtExceptionHandler.uncaughtException中运行Thread是可能的...前提是Thread以前没有启动过。

但是,不可能启动作为t参数传递的Thread。那将始终是已经启动并终止的Thread

您最多可以启动给定的Thread一次。如果尝试第二次启动,则会收到InvalidStateException。始终如此。


2

不,你不能像你的代码中所示那样运行抛出异常的线程。它已经运行过了,这就是它抛出异常的原因。一个线程不能被启动多次。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接