【问题标题】:starting a new thread in existing thread's uncaughtexception handler在现有线程的未捕获异常处理程序中启动一个新线程
【发布时间】:2013-04-15 14:16:07
【问题描述】:

如果抛出未捕获的异常,并且您想通过重新启动与刚刚抛出异常的线程相同的线程来恢复(例如 JMS 连接丢失),最简单的方法是什么?

类继承自Thread,线程有一个UncaughtExceptionHandler。

【问题讨论】:

  • 你能显示一些代码吗?而且我假设您无法在 run 方法中捕获 Exception 以适当地处理此问题?

标签: java multithreading uncaughtexceptionhandler


【解决方案1】:

最简单的做法是通过run()方法“重启”当前线程

void run() {
    boolean done = false;
    while(!done) {
        try {
           ...
           done = true;
        } catch (ConnectionLostException ex) { 
            // log exception
        }
    }
}

【讨论】:

    猜你喜欢
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 2010-11-28
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多