1
try:
raise KeyError()
except KeyError:
print "Caught KeyError"
raise Exception()
except Exception:
print "Caught Exception"
正如預期的那樣多,5日線最終except Exception
子句中沒有被捕獲提高Exception()
。爲了在捕捉except KeyError
塊內的例外,我必須添加另一try...except
這樣,複製最終except Exception
邏輯:Python的try /除與除塊
try:
raise KeyError()
except KeyError:
print "Caught KeyError"
try:
raise Exception()
except Exception:
print "Caught Exception"
except Exception:
print "Caught Exception"
在Python,是有可能執行流傳遞到最終except Exception
像我想要做的那樣阻止?如果沒有,是否有減少邏輯重複的策略?
是。把你用來處理'Exception'的代碼放在一個函數中。然後在這兩個地方調用該函數。 – kindall
'except'子句只捕捉'try'中拋出的錯誤;否則,如果你想要的話,你不能重新加註。 – jonrsharpe
嗯,你能解釋你想達到什麼嗎?標準的方法來重新提出一個你已經決定在「提升」之後決定不處理的捕捉異常,而沒有其他任何東西。在這種情況下,這可能符合或不符合你的要求。無法單獨從您的代碼中分辨出來。 –