docs: def _on_response(self, action, table, attempt, start, response, future,
                       measurements):
          """Invoked when the HTTP request to the DynamoDB has returned and
          is responsible for setting the future result or exception based upon
          the HTTP response provided.
  
          :param str action: The action that was taken
          :param str table: The table name the action was made against
          :param int attempt: The attempt number for the action
          :param float start: When the request was submitted
          :param tornado.concurrent.Future response: The HTTP request future
          :param tornado.concurrent.Future future: The action execution future
          :param list measurements: The measurement accumulator
  
          """
          self.logger.debug('%s on %s request #%i = %r',
                            action, table, attempt, response)
          now, exception = time.time(), None
          try:
              future.set_result(self._process_response(response))
          except aws_exceptions.ConfigNotFound as error:
              exception = exceptions.ConfigNotFound(str(error))
          except aws_exceptions.ConfigParserError as error:
              exception = exceptions.ConfigParserError(str(error))
          except aws_exceptions.NoCredentialsError as error:
              exception = exceptions.NoCredentialsError(str(error))
          except aws_exceptions.NoProfileError as error:
              exception = exceptions.NoProfileError(str(error))
          except aws_exceptions.AWSError as error:
              exception = exceptions.DynamoDBException(error)
          except (ConnectionError, ConnectionResetError, OSError,
                  aws_exceptions.RequestException, ssl.SSLError,
                  _select.error, ssl.socket_error, socket.gaierror) as error:
              exception = exceptions.RequestException(str(error))
          except TimeoutError:
              exception = exceptions.TimeoutException()
          except httpclient.HTTPError as error:
              if error.code == 599:
                  exception = exceptions.TimeoutException()
              else:
                  exception = exceptions.RequestException(
                      getattr(getattr(error, 'response', error),
                              'body', str(error.code)))
          except Exception as error:
              exception = error
  
          if exception:
              future.set_exception(exception)
  
          measurements.append(
              Measurement(now, action, table, attempt, max(now, start) - start,
                          exception.__class__.__name__
                          if exception else exception))