@Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
      if (cause instanceof Http2Exception.StreamException) {
        // This usually happens when server returns response for a request which was already dropped.
        logger.info("StreamException: {}", cause.getMessage());
      } else if (cause instanceof NativeIoException) {
        logger.info("Remote peer not available: " + cause.toString());
      } else {
        logger.warn("Connection inbound exception:", cause);
      }
    }
Construct a {@link Http2ChannelPoolHandler}.
@param sslFactory the {@link SSLFactory} to use for generating {@link javax.net.ssl.SSLEngine} instances,
                  or {@code null} if SSL is not enabled in this pipeline.
@param http2ClientConfig the {@link Http2ClientConfig}
@param http2ClientMetrics the {@link Http2ClientMetrics}
ambry-network/src/main/java/com/github/ambry/network/http2/Http2ChannelPoolHandler.java