小编kop*_*tsa的帖子

如何管理Spring中过滤器抛出的异常?

我想使用通用方法来管理5xx错误代码,让我们具体说明db在整个spring应用程序中出现故障的情况.我想要一个漂亮的错误json而不是堆栈跟踪.

对于控制器,我有一个@ControllerAdvice用于不同异常的类,这也是捕获db在请求中间停止的情况.但这并不是全部.我也碰巧有一个自定义CorsFilter扩展OncePerRequestFilter,当我打电话给doFilter我得到CannotGetJdbcConnectionException它,它将不会被管理@ControllerAdvice.我在线阅读了几件让我更加困惑的事情.

所以我有很多问题:

  • 我需要实现自定义过滤器吗?我找到了,ExceptionTranslationFilter但这只是处理AuthenticationExceptionAccessDeniedException.
  • 我想实现自己的HandlerExceptionResolver,但这让我怀疑,我没有任何自定义异常来管理,必须有一个比这更明显的方法.我还尝试添加一个try/catch并调用一个实现HandlerExceptionResolver(应该足够好,我的异常没什么特别的)但是这不会在响应中返回任何内容,我得到一个状态200和一个空体.

有什么好方法可以解决这个问题吗?谢谢

java spring spring-security

82
推荐指数
8
解决办法
7万
查看次数

标签 统计

java ×1

spring ×1

spring-security ×1