记一次springboot的开机启动自动关闭问题

具体问题特征:

启动后,就是出现Started Application in 36.914 seconds后,开始关闭定时任务、nacos服务注册等内容,中间没有任何异常信息,最后出现"进程已结束,退出代码为 1"或者是“Process finished with exit code 1

查到很多可能的情况:Spring Boot 应用自动退出剖析-阿里云开发者社区

但是经过排查,都不是这些问题。

最后发现是:ApplicationRunner的实现类的run方法上throw Exception,执行一旦异常就向springboot抛出异常,抛出之前没有输出错误信息,导致了springboot直接启动服务关闭。

核心问题点在于:不应该在run方法上throw Exception,应该加try catch捕获异常,这样就不影响springboot的运行,还能抛出准确的异常信息。

具体为什么抛出异常springboot就启动关闭,没细究源码,以后再说。

 

这个问题最恶心的问题点在于,跟踪日志根本跟踪不到异常内容,只能靠排查,一开始考虑过启动相应类的问题,但是没发现这个异常。最后发现在run方法上throw Exception,才猛然反应过来是这个问题导致的。

乱在方法上抛异常是真的坑!

posted @ 2024-11-15 11:17  昨夜忆星辰  阅读(6)  评论(0编辑  收藏  举报