我正在編寫一個Python函數,使用用戶提交的憑據向URL發送GET請求,並獲取返回的令牌供以後使用。如果用戶名/密碼組合不正確,代碼將拋出KeyError異常。我瞭解到Try-Else可以打破最內層的循環,在這種情況下應該是while循環。在Python中,如何從Try中正確跳出While循環?
Invalid credentials. Please try again.
Enter your username:
如果登錄成功,則代碼應該清除屏幕並返回所獲得的令牌:在我的設計,我當發生異常(意爲無效證書)想要的功能輸出下面的消息。問題是,當這些代碼不在Try中而不在While中時,這些代碼運行良好。現在,這個輸出時登錄成功:
Enter your username:
顯然,程序不執行,即使發生也不例外else分支。我是Python新手,請幫助我確定導致此錯誤的原因。
編輯:感謝您的意見中的意見。我設置了一些斷點,但斷點顯示即使我在try塊的末尾插入了一箇中斷,程序也會先執行它,然後直接返回到「while True」語句。這似乎是休息沒有成功退出循環。
你不應該使用神奇寶貝的例外(總得趕上它們全部)。 – Moberg
最簡單的就是在try:塊的末尾放置break。 – RemcoGerlich
在嘗試一段代碼中放入中斷。 –