1.如果线程运行时异常会怎么样
如果异常没有被捕获的话,线程会停止执行。如果该线程中有某个对象的监视器,该对象锁会被释放。
2.如何捕获线程中的异常
JDK5之后有了一个Thread.UncaughtExceptionHandler 新接口,它允许我们在每一个Thread对象上添加一个异常处理器。Thread.UncaughtExceptionHandler.uncaughtException()方法会在线程因未捕获的异常而面临死亡时被调用。
首先我们要先定义这个线程异常捕获的处理器
我们有三种方式使用该线程异常捕获器:
1、在创建线程的时候进行设置
2、使用Executors创建线程时,还可以在TreadFactory中设置
3、如果我们只需要一个线程异常处理器处理线程的异常,那么我们可以设置一个默认的线程异常捕获器,当线程出现异常
时,如果我们没有指定线程的异常捕获器,而且线程组也没有设置(线程组不用考虑,因为这是一个不成功的尝试),那么就会使
用默认的线程异常捕获器。