Are the else
and finally
sections of exception handling redundant? For example, is there any difference between the following two code snippets?
try:
foo = open("foo.txt")
except IOError:
print("error")
else:
print(foo.read())
finally:
print("finished")
and
try:
foo = open("foo.txt")
print(foo.read())
except IOError:
print("error")
print("finished")
More generally, can't the contents of else
always be moved into the try
, and can't the contents of finally
just be moved outside the try/catch block? If so, what is the purpose of else
and finally
? Is it just to enhance readability?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…