Java多线程处理异常

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

问题场景复现:

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

img

参考:


以及
https://www.cnblogs.com/luodengxiong/p/5497335.html

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^