簡體   English   中英

嘗試以外的Python指令:除外:

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM