Use try-except-finally in contextlib.

This commit is contained in:
Georg Brandl 2007-08-23 18:11:33 +00:00
parent add36e5fdf
commit ac4018ae39

View file

@ -105,15 +105,14 @@ def nested(*managers):
vars = []
exc = (None, None, None)
try:
try:
for mgr in managers:
exit = mgr.__exit__
enter = mgr.__enter__
vars.append(enter())
exits.append(exit)
yield vars
except:
exc = sys.exc_info()
for mgr in managers:
exit = mgr.__exit__
enter = mgr.__enter__
vars.append(enter())
exits.append(exit)
yield vars
except:
exc = sys.exc_info()
finally:
while exits:
exit = exits.pop()