import dis, traceback, sys
def foo(it):
    return iter(it)
def bar(it):
    return (yield from it)
def test(f):
	dis.dis(f)
	def i():
		yield 1
		raise RuntimeError
	try:
		for x in f(i()):
			pass
	except:
		traceback.print_exc(file=sys.stdout)
test(foo)
test(bar)