Я не уверен, но, может быть, это подходит вам лучше, если вы хотите понять, где произошли ошибки:
In [1]: def gener():
...: a = [1, 2, 0, 3, 4, 5, 6, 7, 8, 9]
...: errors = []
...: for idx, i in enumerate(a):
...: try:
...: yield 2 / i
...: except ZeroDivisionError:
...: errors.append('ZeroDivisionError occured at idx = {}'.for
...: mat(idx))
...: if errors:
...: raise RuntimeWarning('\n'.join(errors))
...: