Являются ли разделы обработки else
и finally
избыточности исключений? Например, существует ли разница между следующими двумя фрагментами кода?
try:
foo = open("foo.txt")
except IOError:
print("error")
else:
print(foo.read())
finally:
print("finished")
и
try:
foo = open("foo.txt")
print(foo.read())
except IOError:
print("error")
print("finished")
В общем случае, нельзя ли содержимое else
всегда перемещаться в try
и не может ли содержимое finally
просто перемещаться за пределы блока try/catch? Если да, то какова цель else
и finally
? Это просто для повышения удобочитаемости?