private Object decode(final Response response, final Request request)
      throws IOException, FeignException {
    try {
      return decoder.decode(response, metadata.returnType());
    } catch (final FeignException feignException) {
      /* All feign exception including decode exceptions */
      throw feignException;
    } catch (final RuntimeException unexpectedException) {
      /* Any unexpected exception */
      throw new DecodeException(-1, unexpectedException.getMessage(), request, unexpectedException);
    }
  }
Transforms HTTP response body into object using decoder.

@param response HTTP response
@param request HTTP request
@return decoded result
@throws IOException IO exception during the reading of InputStream of response
@throws DecodeException when decoding failed due to a checked or unchecked exception besides
    IOException
@throws FeignException when decoding succeeds, but conveys the operation failed
vertx/feign-vertx/src/main/java/feign/VertxMethodHandler.java