簡體   English   中英

如何跳出 python 中的 try 循環?

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

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