code: def add_errback(self, fn, *args, **kwargs):
          
          run_now = False
          with self._callback_lock:
              # Always add fn to self._errbacks, even when we're about to execute
              # it, to prevent races with functions like start_fetching_next_page
              # that reset _final_exception
              self._errbacks.append((fn, args, kwargs))
              if self._final_exception:
                  run_now = True
          if run_now:
              fn(self._final_exception, *args, **kwargs)
          return self
docs: Like :meth:`.add_callback()`, but handles error cases.
          An Exception instance will be passed as the first positional argument
          to `fn`.