有一个异步任务, 要记录一段日志, 在savelog的时候使用的是mp的save方法, 程序直接中断了. 数据库也没有插入日志; 没有报错信息, 让我感觉很诡异;
代码结构大致:

        ThreadUtil.execAsync(() -> {

    	 memberMoveSingleLogService.save(successDO);

        });

我想,这么大一个框架 不会没有抛异常吧?
最后想到,之前在自己整理接口的完整调用链路时发现,是tomcat等servlet容器打印的报错信息.
而我们现在用的异步方法, 所以就算有异常抛出,我们自己不打印就看不到;
最后代码改为:

        ThreadUtil.execAsync(() -> {

    	             try {
        memberMoveSingleLogService.save(successDO);
            } catch (Exception e) {
               log.error("内部方法异常,",e);
            }
        });

兄弟们, 以后记住了, 异步方法都要自己try catch打印日志, 养成好习惯!

我想着应该也会有人跟我一样,记录一下 提醒后来者~~~ 共勉

如果感觉有用, 请点个赞支持一下,谢谢

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐