簡體   English   中英

從運行線程捕獲異常

[英]Catch Exception from running Thread

我想從正在運行的線程中捕獲異常並在調用線程中處理它。 我將如何以最好的方式?

try {
  Runnable connect = new Runnable() {
    public synchronized void  run() {
      try {
        ... some code requiring long time
      } catch(Exception e) {
        ..I want to catch here and send to calling thread
      }
    }
  }

  synchronized(connect) {
    new Thread(connect).start();
    connect.wait();
    ...if exception then handle it
    ...keep on with code if no exception occurred
  }

} catch(Exception e) {
}

最好的辦法是不要直接使用Thread,而要使用Future 您可以根據需要通過線程運行FutureTask ,也可以通過將Callable提交給執行程序來獲得Future(首選方法)。 “未來”為您提供了一種方便的方式來等待任務完成並處理結果(常規或異常)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM