多线程池捕捉线程异常
发布时间
阅读量:
阅读量
在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)
还没有任何评论哟~
