提问人:Stian Jørgensrud 提问时间:9/22/2023 更新时间:9/23/2023 访问量:109
如何在 Spring Boot 中捕获所有异常?
How do I catch all exceptions in Spring Boot?
问:
我想确保我的团队始终记录抛出的异常。有没有办法捕获Spring Boot应用程序中的所有异常(无论入口点如何)?
使用 (和 ) 的这个答案是这个问题的错误答案,因为它只捕获组件启动的代码的异常。代码可以通过许多不同的方式启动,例如,在从队列接收消息时运行带注释的方法。在 JmsListener 启动的代码中抛出的异常不会被 ControllerAdvice 中的处理程序捕获。@ControllerAdvice
@RestControllerAdvice
@Controller
@JmsListener
答:
1赞
kakashi hatake
9/23/2023
#1
Spring Boot 集成模块通常带有可配置的错误处理程序机制。用户将能够为应用程序目的配置此处理程序。例如,可以通过为 JMS 侦听器容器工厂提供自定义错误处理程序来配置它,并且您可以按照指定的方式捕获侦听器中的所有错误。
如果正在考虑围绕应用程序进行更常规的配置,则应为此使用应用程序检测解决方案,并遵循整个应用程序。像 Jaeger 或其他类似工具。此方法更有可能在基础结构级别,并由外部应用程序作为代理进行管理。
评论
0赞
Stian Jørgensrud
9/25/2023
好。仪器似乎是通用包罗万象的方法。Jaeger 文档提到了我们的日志聚合器支持的 OpenTelemetry。
评论