From d6ac380d394771a8c72e42a8c1443b2151718d62 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 7 Jul 1995 23:01:27 +0000 Subject: fix bug in example (should close file at all times) --- Doc/lib/libimp.tex | 23 +++++++++++++---------- Doc/libimp.tex | 23 +++++++++++++---------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/Doc/lib/libimp.tex b/Doc/lib/libimp.tex index 2e72602..4456814 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 2e72602..4456814 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} -- cgit v0.12