protected void handleExceptions(Exception[] exceptions) throws SQLException {
    if (exceptions.length == 0) {
      return;
    }
    String[] exceptionMsg = new String[exceptions.length];
    Throwable[] businessExceptions = new Throwable[exceptions.length];
    boolean exceptionInconsistent = false;
    for (int i = 0; i < exceptions.length; i++) {
      if (exceptions[i] != null) {
        businessExceptions[i] =
            exceptions[i] instanceof ExecutionException ? exceptions[i].getCause() : exceptions[i];
        exceptionMsg[i] = businessExceptions[i].getMessage();
      }
    }
    for (int i = 1; i < exceptionMsg.length; i++) {
      if (!Objects.equals(exceptionMsg[i], exceptionMsg[0])) {
        exceptionInconsistent = true;
        break;
      }
    }
    for (int i = 0; i < businessExceptions.length; i++) {
      if (businessExceptions[i] != null) {
        // As each exception has its own stacktrace, in order to display them clearly, we can only
        // print them through logger.
        logger.warn(
            "Exception happens during request to {}", getEndpoints().get(i), businessExceptions[i]);
      }
    }
    if (!exceptionInconsistent && exceptionMsg[0] != null) {
      throw new SQLException(exceptionMsg[0]);
    }
    if (exceptionInconsistent) {
      throw new InconsistentDataException(Arrays.asList(exceptionMsg), getEndpoints());
    }
  }
Do the requests which have been added, and then comparing their return values. If all the
values are equal, one value will be returned. Otherwise an {@link SQLException} will be thrown.

@return the return value of one request, as all requests return the same one.
@throws SQLException if any error happens during requesting.
@throws InconsistentDataException if the return values of requests are not equal.
integration-test/src/main/java/org/apache/iotdb/itbase/runtime/RequestDelegate.java