From: Mariatta Date: Thu, 13 Apr 2017 04:05:25 +0000 (-0700) Subject: [3.5] Clarify exception handler scope in contextlib (GH-1104) X-Git-Tag: v3.5.4rc1~217 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c0f4240fac397e1cdd1ee202fc1ce6eb23037d06;p=thirdparty%2FPython%2Fcpython.git [3.5] Clarify exception handler scope in contextlib (GH-1104) Moved explicit raise from inside try to try...else. (cherry picked from commit 680e20beee8bbce9f857b8e7795009191f98b0ba) --- diff --git a/Lib/contextlib.py b/Lib/contextlib.py index 4a7bd079a7db..c0188952ad70 100644 --- a/Lib/contextlib.py +++ b/Lib/contextlib.py @@ -75,7 +75,6 @@ class _GeneratorContextManager(ContextDecorator): value = type() try: self.gen.throw(type, value, traceback) - raise RuntimeError("generator didn't stop after throw()") except StopIteration as exc: # Suppress StopIteration *unless* it's the same exception that # was passed to throw(). This prevents a StopIteration @@ -101,6 +100,8 @@ class _GeneratorContextManager(ContextDecorator): # if sys.exc_info()[1] is not value: raise + else: + raise RuntimeError("generator didn't stop after throw()") def contextmanager(func):