docs: public void connectWithoutProxy() throws SQLException {
      if (!isClosed()) {
        close();
      }
  
      List<HostAddress> addrs = urlParser.getHostAddresses();
      LinkedList<HostAddress> hosts = new LinkedList<>(addrs);
  
      if (urlParser.getHaMode().equals(HaMode.LOADBALANCE)) {
        Collections.shuffle(hosts);
      }
  
      //CONJ-293 : handle name-pipe without host
      if (hosts.isEmpty() && options.pipe != null) {
        try {
          connect(null, 0);
          return;
        } catch (IOException ioException) {
          throw ExceptionMapper.connException(
              "Could not connect to named pipe '" + options.pipe + "' : " + ioException.getMessage()
                  + getTraces(),
              ioException);
        }
      }
  
      // There could be several addresses given in the URL spec, try all of them, and throw exception if all hosts
      // fail.
      while (!hosts.isEmpty()) {
        currentHost = hosts.poll();
        try {
          connect(currentHost.host, currentHost.port);
          return;
        } catch (SQLException e) {
          if (hosts.isEmpty()) {
            throw ExceptionMapper.getException(e, null, null, false);
          }
        } catch (IOException ioException) {
          if (hosts.isEmpty()) {
            throw ExceptionMapper.connException(
                "Could not connect to " + HostAddress.toString(addrs) + " : " + ioException
                    .getMessage() + getTraces(),
                ioException);
          }
        }
      }
    }