巧妙使用自定義異常跳出多級循環

一般最規規矩矩的做法是這樣:

break_flag = False
for i in range(10):
    print("first level")
    for j in range(10):
        print("----second level")
        for k in range(10):
            print("--------third level")
            if j == 2 and k == 3:
                break_flag = True
                break  # 跳出最內層循環,繼續向下運行
        if break_flag:
            break  # 滿足條件,運行break跳出第二層循環,向下運行
    if break_flag:
        break  # 滿足條件,運行break跳出第一層循環,結束全部循環,向下運行
print("keep going...")

當然也可以這麼搞:

class CustomError(Exception):
    def __init__(self, ErrorInfo):
        self.info = ErrorInfo

    def __str__(self):
        return self.info


try:
    for i in range(10):
        print("first level")
        for j in range(10):
            print("----second level")
            for k in range(10):
                print("--------third level")
                if j == 2 and k == 3:
                    raise CustomError("I am going...")
except CustomError as e:
    pass
print("keep going...")

運行結果都是一樣的:

first level
----second level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
----second level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
--------third level
----second level
--------third level
--------third level
--------third level
--------third level
keep going...

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章