Java 停止并重新运行其内部的线程

Java 停止并重新运行其内部的线程,java,multithreading,try-catch,runnable,Java,Multithreading,Try Catch,Runnable,我在类中使用runnable实现了一个线程,如下所示: static Runnable myThread = new Runnable() { public void run(){ try{ //do something forever }catch(Exception e){ //something happened. Re-run this thread } } } 即使发现异常,我也希望继续运行此线程。那么,我如何在例外条款中做到这一点呢?有更优雅的解决方

我在类中使用runnable实现了一个线程,如下所示:

static Runnable myThread = new Runnable() {
 public void run(){
  try{
  //do something forever 
  }catch(Exception e){
    //something happened. Re-run this thread
  }
 } 
}
即使发现异常,我也希望继续运行此线程。那么,我如何在例外条款中做到这一点呢?有更优雅的解决方案吗?

使用循环:

static Runnable myThread = new Runnable() {
  public void run() {
    for (;;) {
      try {
        ...
      } catch(Exception e) {
        ...
      }
    }
  } 
}

无论你做什么,我都强烈鼓励你不要默默地忽略这个例外。如果没有更好的方法来处理异常,至少要记录它。

您可以在一段时间内完成并继续循环。比如:

public void run() {
   while (true) 
      try {
          // do something forever 
      } catch(Exception e) {
         // something happened. Re-run this thread
        continue;
      }
      ...
   }
}

try中是否有一个循环?就不能在试抓之外吗?