在類中繼續提高我有一個名爲「place(dictionary)」的方法,用來檢查字典中的每個對象,並在沒有異常的情況下將其添加到類變量中。 基於名爲ignore_invalid的布爾變量我想選擇繼續使用字典中下一個對象的循環,只需避免添加引發異常的對象,或者阻止循環重新引發異常。python - 除了語句調用裏面繼續還是根據結果
的代碼是這樣的:
class MyOwnException1()
[...]
class MyOwnException2()
[...]
[..my class definition..]
def place(self, elements, ignore_invalid=False):
for coordinates in elements:
try:
if method_checker1(coordinates):
raise MyOwnException1("...")
elif method_checker2(coordinates):
raise MyOwnException2("...")
else:
print "Current coordinates are valid. Adding them."
# adding the current coordinates
[..]
except (MyOwnException1, MyOwnException2) as my_exception:
print my_exception
if not ignore_invalid:
print "Stop the loop"
raise
else:
print "Continue the loop with next coordinates"
continue
此代碼是給我的加薪行錯誤:看來我不能用「養」和「繼續」在同一個「除」。 這樣做的最好方法是什麼?
編輯:我的IDE有一個錯誤在輸出控制檯;發生異常後,如果ignore_invalid爲true,則停止重現輸出。 這裏的什麼我做了愚蠢和semplified例子(即正常運行) http://pastebin.com/FU2PVkhb
你可以發佈你正在得到的確切的錯誤? – goncalopp 2014-10-16 14:32:08
在'ignore_invalid'上有條件地執行method_checkers可能更有意義,而不是盲目地引發異常並稍後進行過濾 – goncalopp 2014-10-16 14:33:31
無法重現您描述的行爲,並且您沒有發佈完整的回溯。 – 2014-10-16 15:32:20