> 文章列表 > 线程池中的线程抛出了异常,该如何处理?

线程池中的线程抛出了异常,该如何处理?

线程池中的线程抛出了异常,该如何处理?

文章目录

  • 模拟线程池抛异常
  • submit()想要获取异常信息就必须使用get()方法!!
  • 如何获取和处理异常
    • 方案一:使用 try -catch
    • 方案二:使用Thread.setDefaultUncaughtExceptionHandler方法捕获异常
    • 方案三:重写afterExecute进行异常处理

模拟线程池抛异常

在实际开发中,我们常常会用到线程池,但任务一旦提交到线程池之后,如果发生异常之后,怎么处理?怎么获取到异常信息?在了解这个问题之前,可以先看一下 线程池的源码解析,从中我们知道了线程池的提交方式:submitexecute的区别,接下来分别使用他们执行带有异常的任务!看结果是怎么样的!

我们先用伪代码模拟一下线程池抛异常的场景:

public class T