[英]How do I break out of a try loop in python?
請參考以下代碼:
import sys
def x():
try:
y()
except:
print("exception caught")
def y():
sys.exit()
x()
在這種情況下,函數x()
的 try 循環將被傳遞到函數y()
,導致由於sys.exit()
引發錯誤而導致 except 循環運行。 我知道,我們可以更改它以提高 SystemExit 以退出它,但是有沒有辦法跳出 try 循環,或者有沒有更好的方法來編寫此代碼?
感謝您閱讀並提前致謝。
您可以編寫except Exception
,它會捕獲代碼中所有常見的except Exception
,但不會捕獲SystemExit
異常,因為它不是從Exception
繼承的,而是從BaseException
繼承的
一般來說,簡單地使用除非沒有發現任何錯誤是一個壞主意......所以我的建議是采用你提到的另一種方式,如下所示:
import sys
def x():
try:
y()
except SystemExit:
print("exception caught")
def y():
sys.exit()
x()
我認為你想退出 try 塊而不被 except 塊抓住,因為這只是
except Exception as e:
代替
except:
這是完整的代碼:
import sys
def x():
try:
y()
except as e:
if e is SystemExit:
print("exception caught")
def y():
raise SystemExit
x()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.