亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

exit 函數不工作,因為 except

exit 函數不工作,因為 except

www說 2023-01-04 13:31:30
當我嘗試使用該exit()功能時,代碼不會因為異常而停止,如何取消它?def start(number):    try:        print(9 ** number)        exit()    except:        print("problem")        start()
查看完整描述

2 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

您需要查看手冊中的異常層次結構。基本異常被適當地命名BaseException,其他所有異常都繼承自它。有四個直接后代BaseExceptionSystemExit、KeyboardInterrupt和。GeneratorExitException

exit引發SystemExit異常,您正在使用無條件except條款捕獲該異常。通常你只想捕獲Exception它的任何后代,這是所有其他異常。所以:

try:
????...
????except?Exception:
????...

這允許其他三種異常按它們應該的方式冒泡,并允許您捕獲更具體的異常樹。最好你只捕獲更具體的類型,盡可能具體。


查看完整回答
反對 回復 2023-01-04
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

您正在捕獲所有異常,包括SystemExit.

使用except Exception以捕獲所有內置的非退出異常。

在您的具體情況下,我建議只捕獲 a TypeError,因為這是您希望因 . 的不良類型而拋出的內容number。也就是說,在您修復start()except-block 中的無參數調用之后,它將引發 aTypeError自身。


查看完整回答
反對 回復 2023-01-04
  • 2 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號