code: public static void bind(ServerSocket socket, InetSocketAddress address,
                            int backlog) throws IOException {
      try {
        socket.bind(address, backlog);
      } catch (BindException e) {
        BindException bindException = new BindException("Problem binding to " + address
                                                        + " : " + e.getMessage());
        bindException.initCause(e);
        throw bindException;
      } catch (SocketException e) {
        // If they try to bind to a different host's address, give a better
        // error message.
        if ("Unresolved address".equals(e.getMessage())) {
          throw new UnknownHostException("Invalid hostname for server: " +
                                         address.getHostName());
        } else {
          throw e;
        }
      }
    }
docs: A convenience method to bind to a given address and report
  better exceptions if the address is not a valid host.
  @param socket the socket to bind
  @param address the address to bind to
  @param backlog the number of connections allowed in the queue
  @throws BindException if the address can't be bound
  @throws UnknownHostException if the address isn't a valid host name
  @throws IOException other random errors from bind