嗝屁小孩纸 2023-08-08 16:19 采纳率: 80.8%
浏览 3
已结题

Java多线程处理异常

有大酪遇见过类似这种问题吗,想问问是怎么定位和解决的?

问题场景复现:

  • 场景是在一个多线程启动的任务,服务器是无图形渲染的,而且这种问题就在办这种业务才出现,其他业务没复现过;
  • 该业务是一种涉及多张表的业务逻辑,如数据的备份和迁移;
  • 抛出的异常日志打印正常并不在这个线程中执行,而是自己声明的自定义线程池;
  • 这种异常很少出现,一天偶尔一两次;
  • 自己捕获异常的逻辑通过下面这种方式获取,有没有可能是线程复用而导致线程切片轮训,获取到其他业务的异常;
public void execWkRs2Hs(Thread.UncaughtExceptionHandler exceptionHandler) {
       Thread.setDefaultUncaughtExceptionHandler(exceptionHandler);
// ...
}
commonBusinessService.execWkRs2Hs((t, e) -> {
                logger.error("[业务办结/终止] 移库失败! Gid = " + gid, e);
            });

img

  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 修改了问题 8月8日
  • 创建了问题 8月8日