2013-04-15 36 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 
     } 
    } 
}