try...except...finally problem in Python 2.5
Larry Bates
larry.bates at websafe.com
Wed Feb 14 14:55:12 EST 2007
redawgts wrote:
> I keep getting this error "local variable 'f' referenced before
> assignment" in the finally block when I run the following code.
>
> try:
> f = file(self.filename, 'rb')
> f.seek(DATA_OFFSET)
> self.__data = f.read(DATA_SIZE)
> self.isDataLoaded = True
> except:
> self.isDataLoaded = False
> finally:
> f.close()
>
> Can someone tell me what's wrong with the code? Am I doing something
> wrong? I'm somewhat new to python but this makes sense to me.
>
finally: block is executed even if there is an exception in which case f
hasn't been defined. What you want is:
try:
f = file(self.filename, 'rb')
f.seek(DATA_OFFSET)
self.__data = f.read(DATA_SIZE)
self.isDataLoaded = True
except:
isDataLoaded=False
else:
f.close()
-Larry
More information about the Python-list
mailing list