首页 > 编程语言 >捕获Java线程池执行任务抛出的异常

捕获Java线程池执行任务抛出的异常

时间:2022-10-07 18:06:54浏览次数:81  
标签:lang java Thread 抛出 线程 Java 异常

捕获Java线程池执行任务抛出的异常
Java中线程执行的任务接口java.lang.Runnable 要求不抛出Checked异常,
  public interface Runnable {
  public abstract void run();

  }
  那么如果 run() 方法中抛出了RuntimeException,将会怎么处理了?
  通常java.lang.Thread对象运行设置一个默认的异常处理方法:
  java.lang.Thread.setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler)
   而这个默认的静态全局的异常捕获方法时输出堆栈。
  当然,我们可以覆盖此默认实现,只需要一个自定义的java.lang.Thread.UncaughtExceptionHandler接口实现即可。
  public interface UncaughtExceptionHandler {
  void uncaughtException(Thread t, Throwable e);
  }

  而在线程池中却比较特殊。默认情况下,线程池 java.util.concurrent.ThreadPoolExecutor 会Catch住所有异常, 当任务执行完成(java.util.concurrent.ExecutorService.submit(Callable))获取其结果 时(java.util.concurrent.Future.get())会抛出此RuntimeException。

 

 

http://blog.sina.com.cn/s/blog_8839cbea0101f5wa.html



标签:lang,java,Thread,抛出,线程,Java,异常
From: https://blog.51cto.com/u_15147537/5734771

相关文章

  • java tempalte
    //javaservicepackagetx.txservice.service;importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importjava.util.List;publicinterfaceTem......
  • hive元起动报错:Exception in thread "main" java.lang.NoSuchMethodError: com.google
    错误原因:1.系统找不到这个类所在的jar包2.jar包的版本不一样系统不知道使用哪个。 hive启动报错的原因是后者解决办法:1、com.google.common.base.Preconditions.che......
  • 一个例子形象的理解协程和线程的区别
    一个例子形象的理解协程和线程的区别Talkischeap,showmethecode!所以,废话先不说,先上代码:首先写一个WebAPI接口///<summary>///测试接口///</summary>[RoutePrefix......
  • 一个例子形象的理解协程和线程的区别
    一个例子形象的理解协程和线程的区别Talkischeap,showmethecode!所以,废话先不说,先上代码:首先写一个WebAPI接口///<summary>///测试接口///</summary>[RoutePrefix......
  • Spring Boot 2.x基础教程:配置@Async异步任务的线程池
    上一篇我们介绍了如何使用@Async注解来创建异步任务,我可以用这种方法来实现一些并发操作,以加速任务的执行效率。但是,如果只是如前文那样直接简单的创建来使用,可能还是会碰......
  • Java实现rtrim功能,批量删除字符串指定末尾的字符串
    publicstaticStringremoveEndLoop(Stringstr,Stringremove){if(StringUtils.isBlank(str)||StringUtils.isBlank(remove)){returnstr;}......
  • java--equals和==用法
    //引用类型不能用相等于==去比较,引用类型都是在堆内存,比较的是地址值,所以用equals数组是引用类型,不能使用==去比较//基本数据类型用==去比较1、equals是object的方法......
  • JavaScript 学习-49.localStorage前端保存数据
    前言localstorage在浏览器的API有两个:localStorage和sessionStorage存在于window对象中:localStorage对应window.localStorage,sessionStorage对应window.sessio......
  • 从0到1掌握Java全栈小程序开发,玩转微信生态
    从0到1掌握Java全栈小程序开发,玩转微信生态Java :Java基础JDBC基础Java集合Java多线程系列JUC系列JavaIO基础JavaCore:Java虚拟机系列JVM虚拟机监控及性能......
  • Java修饰词
    一到学校感觉写点博客随笔的时间和机会就少了,最近开了Java课程,趁着线上金工实习啥也不想听还不如写点笔记,毕竟逸一时,误一世捏。首先学过的都知道,Java是一种面向对象编程(O......