diff --git a/src/main/java/cc/fascinated/bat/common/WebRequest.java b/src/main/java/cc/fascinated/bat/common/WebRequest.java index 5ff5841..d316e78 100644 --- a/src/main/java/cc/fascinated/bat/common/WebRequest.java +++ b/src/main/java/cc/fascinated/bat/common/WebRequest.java @@ -31,20 +31,26 @@ public class WebRequest { * @return the response */ public static T getAsEntity(String url, Class clazz) throws RateLimitException { - ResponseEntity responseEntity = CLIENT.get() - .uri(url) - .retrieve() - .onStatus(HttpStatusCode::isError, (request, response) -> { - }) // Don't throw exceptions on error - .toEntity(clazz); + try { + ResponseEntity responseEntity = CLIENT.get() + .uri(url) + .retrieve() + .onStatus(HttpStatusCode::isError, (request, response) -> { + }) // Don't throw exceptions on error + .toEntity(clazz); - if (responseEntity.getStatusCode().isError()) { + if (responseEntity.getStatusCode().isError()) { + return null; + } + if (responseEntity.getStatusCode().isSameCodeAs(HttpStatus.TOO_MANY_REQUESTS)) { + throw new RateLimitException("Rate limit reached"); + } + return responseEntity.getBody(); + } catch (RateLimitException e) { + throw e; + } catch (Exception e) { return null; } - if (responseEntity.getStatusCode().isSameCodeAs(HttpStatus.TOO_MANY_REQUESTS)) { - throw new RateLimitException("Rate limit reached"); - } - return responseEntity.getBody(); } /**