"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

Reply via email to