def _make_exception(self, response):
        """
        In case of exception, construct the exception
        object that holds all important values returned by
        the response.
        :return: The exception instance
        :rtype: PocketException
        """
        headers = response.headers

        limit_headers = []
        if 'X-Limit-User-Limit' in headers:
            limit_headers = [
                headers['X-Limit-User-Limit'],
                headers['X-Limit-User-Remaining'],
                headers['X-Limit-User-Reset'],
                headers['X-Limit-Key-Limit'],
                headers['X-Limit-Key-Remaining'],
                headers['X-Limit-Key-Reset']
            ]

        x_error_code = int(headers['X-Error-Code'])
        exc = PocketException
        if x_error_code in self.auth_error_codes:
            exc = PocketAutException

        return exc(
            response.status_code,
            x_error_code,
            headers['X-Error'],
            *limit_headers
        )