gpt4 book ai didi

Spring Boot 应用程序失败,退出代码为 0

转载 作者:行者123 更新时间:2023-12-05 06:37:05 25 4
gpt4 key购买 nike

我在 IntelliJ 中编写了一个 Spring Boot + Spring Batch 应用程序,如果遇到任何配置问题,它会在启动时失败,这是预期的。但是在IntelliJ中显示的应用程序的退出代码仍然是0。0错误代码不意味着成功吗?我应该怎么做才能让应用程序返回正确的退出代码?

最佳答案

这做起来非常尴尬! SpringApplication.run() 有一个非常奇怪的启动过程,它涉及生成一个新线程来完成工作和 yada yada。在执行此操作的过程中,它会调用 SilentExitExceptionHandler.setup(thread),这具有确保任何退出代码始终为 0 的副作用!

如果您想解决这个问题,您可以展开未捕获的异常处理程序。

你也可以这样做:

try {
SpringApplication.run(...);
}
catch(RuntimeException ex) {
throw new RuntimeException(ex);
}

通过包装异常,spring 不会将其识别为特殊异常,因此将以错误代码 1 退出。然而,它有副作用 - 特别是它会将异常记录到 stderr,但它也会忽略任何ExitCodeGenerator 您已设置的 bean。

关于Spring Boot 应用程序失败,退出代码为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48492784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com