Advertisement

多线程池捕捉线程异常

阅读量:

在Java中的多线程程序中,默认情况下所有线程都无法抛出未被捕获到的Checked异常(例如在 sleep()方法中触发的InterruptedException)。换句话说,在运行Runnable.run()方法时,默认情况下各个线程必须自行处理所有Checked异常(即此类异常不会被默认捕获)。这是因为该方法声明中并没有 throw关键字。然而,在某些情况下,即使主线程不发生问题,在子进程中也可能触发未被捕获到的Unchecked exceptions。JVM的设计理念是:'每个独立执行的小代码块应由自身负责解决可能出现的问题'基于这一设计理念,在Java编程中对Line runnable的方法(无论是Checked还是Unchecked exceptions)都应该在run()方法内部进行try-catch块来处理

看下面的例子:

复制代码
 import java.util.concurrent.ExecutorService;

    
 import java.util.concurrent.Executors;
    
  
    
 public class ExceptionThread implements Runnable {
    
  
    
     @Override
    
     public void run() {

全部评论 (0)

还没有任何评论哟~