From: Guido van Rossum Date: Fri, 7 Jul 1995 23:01:27 +0000 (+0000) Subject: fix bug in example (should close file at all times) X-Git-Tag: v1.3b1~203 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d6ac380d394771a8c72e42a8c1443b2151718d62;p=thirdparty%2FPython%2Fcpython.git fix bug in example (should close file at all times) --- diff --git a/Doc/lib/libimp.tex b/Doc/lib/libimp.tex index 2e72602b4e14..445681445e8a 100644 --- a/Doc/lib/libimp.tex +++ b/Doc/lib/libimp.tex @@ -158,14 +158,17 @@ def __import__(name, globals=None, locals=None, fromlist=None): fp, pathname, (suffix, mode, type) = imp.find_module(name) # See what we got. - # Note that fp will be closed automatically when we return. - if type == imp.C_EXTENSION: - return imp.load_dynamic(name, pathname) - if type == imp.PY_SOURCE: - return imp.load_source(name, pathname, fp) - if type == imp.PY_COMPILED: - return imp.load_compiled(name, pathname, fp) - - # Shouldn't get here at all. - raise ImportError, '%s: unknown module type (%d)' % (name, type) + try: + if type == imp.C_EXTENSION: + return imp.load_dynamic(name, pathname) + if type == imp.PY_SOURCE: + return imp.load_source(name, pathname, fp) + if type == imp.PY_COMPILED: + return imp.load_compiled(name, pathname, fp) + + # Shouldn't get here at all. + raise ImportError, '%s: unknown module type (%d)' % (name, type) + finally: + # Since we may exit via an exception, close fp explicitly. + fp.close() \end{verbatim} diff --git a/Doc/libimp.tex b/Doc/libimp.tex index 2e72602b4e14..445681445e8a 100644 --- a/Doc/libimp.tex +++ b/Doc/libimp.tex @@ -158,14 +158,17 @@ def __import__(name, globals=None, locals=None, fromlist=None): fp, pathname, (suffix, mode, type) = imp.find_module(name) # See what we got. - # Note that fp will be closed automatically when we return. - if type == imp.C_EXTENSION: - return imp.load_dynamic(name, pathname) - if type == imp.PY_SOURCE: - return imp.load_source(name, pathname, fp) - if type == imp.PY_COMPILED: - return imp.load_compiled(name, pathname, fp) - - # Shouldn't get here at all. - raise ImportError, '%s: unknown module type (%d)' % (name, type) + try: + if type == imp.C_EXTENSION: + return imp.load_dynamic(name, pathname) + if type == imp.PY_SOURCE: + return imp.load_source(name, pathname, fp) + if type == imp.PY_COMPILED: + return imp.load_compiled(name, pathname, fp) + + # Shouldn't get here at all. + raise ImportError, '%s: unknown module type (%d)' % (name, type) + finally: + # Since we may exit via an exception, close fp explicitly. + fp.close() \end{verbatim}