如何在zuul中捕获hystrixtimeout异常

ggazkfy8  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(429)

当web服务在某个时间(超时)内没有响应并抛出hystrixtimeout异常时,我想在zuulfilter中捕获hystrixtimeout异常。我怎么处理?
注意:在zuulfilter中,我捕获自定义异常。就像下面的代码

  1. @Override
  2. public Object run() {
  3. final RequestContext context = RequestContext.getCurrentContext();
  4. final Object throwable = context.get(THROWABLE_KEY);
  5. if (throwable instanceof ZuulException) {
  6. ZuulException zuulException = (ZuulException) throwable;
  7. }
  8. return null;
  9. }
wgeznvg7

wgeznvg71#

这个问题不是我真正的问题。首先,我明白这一点。因为我的应用程序将sockettimeoutexception作为基本异常。因此,如果我能捕获sockettimeoutexception,我就可以处理这个问题,但是对于这个解决方案,我需要获取异常的原因。我写了一个类似下面代码的方法。

  1. private Throwable findRightException(Throwable th) {
  2. Throwable throwable = th;
  3. if (throwable.getCause() == null || throwable.getCause() instanceof SocketTimeoutException) {
  4. return throwable.getCause();
  5. }
  6. return findRightException(throwable.getCause());

相关问题