def _finished_callback(self, batch_fut, todo):
self._running.remove(batch_fut)<EOL>err = batch_fut.get_exception()<EOL>if err is not None:<EOL><INDENT>tb = batch_fut.get_traceback()<EOL>for (fut, _) in todo:<EOL><INDENT>if not fut.done():<EOL><INDENT>fut.set_exception(err, tb)<EOL><DEDENT><DEDENT><DEDENT>
Passes exception along.

        Args:
          batch_fut: the batch future returned by running todo_tasklet.
          todo: (fut, option) pair. fut is the future return by each add() call.

        If the batch fut was successful, it has already called fut.set_result()
        on other individual futs. This method only handles when the batch fut
        encountered an exception.