code: public static ChannelBindException fail(AbstractBootstrap<?, ?> bootstrap, @Nullable Throwable cause) {
  		Objects.requireNonNull(bootstrap, "bootstrap");
  		if (cause instanceof java.net.BindException ||
  				// With epoll/kqueue transport it is
  				// io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address already in use
  				(cause instanceof IOException && cause.getMessage() != null &&
  						cause.getMessage().contains("Address already in use"))) {
  			cause = null;
  		}
  		if (!(bootstrap.config().localAddress() instanceof InetSocketAddress)) {
  			return new ChannelBindException(bootstrap.config().localAddress().toString(), -1, cause);
  		}
  		InetSocketAddress address = (InetSocketAddress)bootstrap.config().localAddress();
  
  		return new ChannelBindException(address.getHostString(), address.getPort(), cause);
  	}
docs: Build a {@link ChannelBindException}
  
  @param bootstrap a netty bootstrap
  @param cause a root cause
  
  @return a new {@link ChannelBindException}