Я столкнулся с странным поведением в python. Я не мог найти информацию об этом в справке python или в SE, так вот:
def divide(x, y):
print 'entering divide'
try:
return x/y
except:
print 'error'
else:
print 'no error'
finally:
print 'exit'
print divide(1, 1)
print divide(1, 0)
вывод:
entering divide
exit
1
entering divide
error
exit
None
Похоже, что python не войдет в блок else
, если значение возвращается в try
. Однако он всегда будет находиться в блоке finally
. Я не понимаю, почему. Может ли кто-нибудь помочь мне с этой логикой?
спасибо