def FancyDivide(numbers, index):
try:
try:
denom = numbers[index]
for i in range(len(numbers)):
numbers[i] /= denom
except IndexError, e:
FancyDivide(numbers, len(numbers) - 1)
else:
print "1"
finally:
print "0"
except ZeroDivisionError, e:
print "-2"
>>> FancyDivide([0, 2, 4], 0)
0
-2
我只希望-2作爲答案,但爲什麼0。根據我ZeroDivisionError應該由除最後聲明,因此答案被抓應該是-2。困惑。請幫忙。
你混淆'finally'(始終執行)與'else'(在沒有異常的執行)。 – chepner