<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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))