"Robert Kern" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Paul Rubin wrote: > > Say that the open is inside the try block. If the file can't be > > opened, then 'open' raises an exception, 'f' doesn't get set, and then > > the 'finally' clause tries to close f. f might have been previously > > bound to some other file (which still has other handles alive) and so > > the wrong file gets closed. > > And even if 'f' wasn't bound to anything, you will get a NameError instead of > the exception that you're really interested in seeing.
Thanks to both of you. So in order to be thorough, should I be doing: try: f=open('file') except: IOError: print 'doesn't exist' so_something_else_instead() try: contents = f.read() finally: f.close() Thanks again. Louis -- http://mail.python.org/mailman/listinfo/python-list