2013-04-15 39 views
0

如果抛出一个未捕获的异常,并且您想通过重新启动一个相同的线程来恢复异常(例如JMS连接丢失),那么最简单的方法是什么?在现有线程的uncaughtexception处理程序中启动一个新线程

该类从Thread扩展而来,并且该线程有一个UncaughtExceptionHandler。

+2

“重启”当前线程你能表现出一定的代码?我假设你无法在你的run方法中捕捉到'Exception'来正确处理这个问题? – Gray

回答

1

最简单的事情做的是通过run()方法

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