如何在zuul中捕获hystrixtimeout异常

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

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

@Override
public Object run() {
    final RequestContext context = RequestContext.getCurrentContext();
    final Object throwable = context.get(THROWABLE_KEY);

    if (throwable instanceof ZuulException) {
        ZuulException zuulException = (ZuulException) throwable;

    }
    return null;
}
wgeznvg7

wgeznvg71#

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

private Throwable findRightException(Throwable th) {
        Throwable throwable = th;
        if (throwable.getCause() == null || throwable.getCause() instanceof SocketTimeoutException) {
            return throwable.getCause();
        }
        return findRightException(throwable.getCause());

相关问题