![](/img/trans.png)
[英]“raise” at the end of a python function outside “try” or “except” block
[英]Python instructions outside Try: Except:
我在Try / Except塊中只有一行,但是當發生異常時,將在該塊之外執行另一行。 我在打電話,所以我只輸入幾行
try:
total=total+int(number)
except:
print('Bad input')
count = count + 1
輸入數字后,計數將按預期增加。 如果輸入了字符,則會捕獲異常,但計數仍會增加。 我認為如果有例外,只會重復try / except塊中的行。
如果只想在未引發異常的情況下增加count
則需要使用try/except
語句的else
子句。 在文檔部分8.3處理異常中 :
try ... except語句具有可選的else子句,該子句存在時必須遵循所有except子句。 對於try子句未引發異常的必須執行的代碼而言,這很有用。
try:
total += int(number)
except ValueError:
print('Bad input')
else:
count += 1
正如你可以從上面看到的,我改變了你的裸除了語句來捕獲特定的異常類型ValueError
,因為這將int
,如果它不能轉換它的參數傳遞給一個將提高int
。 如果要捕獲其他異常,請更改ValueError
,但不要使用裸的except
子句,因為它可以掩蓋重要的異常。
同樣如評論中所述, try/except
語句不會多次執行其主體。 如果需要這種行為,則需要一個循環。
當您輸入字符並引發異常時。 無論如何,行count = count + 1
仍將執行。 因為count = count + 1
不在else:
條件下else:
這就是為什么count仍然增加的原因。 另外,請注意try-except語句不會重復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.