我想使用通用的方法来管理5xx 的错误代码,具体来说就是在我的整个春季应用程序中数据库出现故障的情况。我想要一个漂亮的错误 json 而不是堆栈跟踪。
对于控制器,我有一个针对不同异常的 @ControllerAdvice
类,这也捕获了 db 在请求中间停止的情况。但这还不是全部。我也碰巧有一个自定义的 CorsFilter
扩展 OncePerRequestFilter
和那里,当我调用 doFilter
我得到的 CannotGetJdbcConnectionException
,它将不会被管理的 @ControllerAdvice
。我在网上看到了一些让我更困惑的东西。
所以我有很多问题:
ExceptionTranslationFilter
,但这只处理 AuthenticationException
或 AccessDeniedException
。HandlerExceptionResolver
,但这使我怀疑,我没有任何自定义的异常管理,必须有一个比这更明显的方式。我还尝试添加 try/catch 并调用 HandlerExceptionResolver
的一个实现(应该足够好了,我的异常没有什么特别的) ,但是在响应中没有返回任何东西,我得到的是一个状态200和一个空主体。有什么好办法吗? 谢谢