我遇到了一個奇怪的行爲,在try-except塊中使用python break語句。爲什麼前面的列表賦值導致break語句不執行?
i=0
lst=[]
while i < 5:
try:
if i < 3:
raise Exception('spam', 'eggs')
#lst[0]=i
print('-'+str(i)+'-')
break
except:
i=i+1
print(str(i)+' ',end='')
1 2 3 -3-
但是如果刪除註釋行:
i=0
lst=[]
while i < 5:
try:
if i < 3:
raise Exception('spam', 'eggs')
lst[0]=i
print('-'+str(i)+'-')
break
except:
i=i+1
print(str(i)+' ',end='')
爲什麼有列表分配的原因d突破不再發生?有人能解釋這裏發生了什麼嗎?
因爲它引發了一個異常。 – user2357112
除了塊捕獲_all_錯誤,包括'IndexError'。 – Lafexlos
**請勿使用裸露的條款** –