throw exception directly when exception is not an BlockException in SentinelProtectInterceptor
@@ -86,13 +86,23 @@ public class SentinelProtectInterceptor implements ClientHttpRequestInterceptor
Tracer.trace(
new IllegalStateException("RestTemplate ErrorHandler has error"));
}
+ return response;
}
catch (Throwable e) {
- if (!BlockException.isBlockException(e)) {
+ if (BlockException.isBlockException(e)) {
+ return handleBlockException(request, body, execution, (BlockException) e);
+ }
+ else {
Tracer.trace(e);
+ if (e instanceof IOException) {
+ throw (IOException) e;
+ }
+ else if (e instanceof RuntimeException) {
+ throw (RuntimeException) e;
}
else {
- return handleBlockException(request, body, execution, (BlockException) e);
+ throw new IOException(e);
+ }
}
}
finally {
@@ -103,7 +113,6 @@ public class SentinelProtectInterceptor implements ClientHttpRequestInterceptor
hostEntry.exit();
}
}
- return response;
}
private ClientHttpResponse handleBlockException(HttpRequest request, byte[] body,
