2017-07-24 53 views
0
def process_item(...): 
    try: 
    #some hacking 
    #... 
    #lots of buggy code 
    except Exception as e: 
    #do logging 
    #record complete/incomplete state 

是的我知道我應該通常攔截特定的異常。但是,如果代碼應用於來自輸入數據的許多項目。所以可能會有不可預知的錯誤。編程錯誤也是可能的。我有特殊的機制來記錄/報告錯誤狀態。我不想停止一個意外錯誤的整個過程,無論錯誤的性質如何。我寧願處理儘可能多的項目。我可以像上面那樣捕獲基本異常嗎?當攔截異常可能是可接受的情況

+0

你的問題到底是什麼意思?你的用例在我看來並不是很清楚。你可以在'try'塊中顯示一個什麼樣的輸入和代碼的簡單例子嗎? –

+1

im not當然,如果你試圖問這個:http PS://stackoverflow.com/questions/18982610/difference-between-except-and-except-exception-as-e-in-python – Moyote

回答

2

當然,你提供的理由是很好的情況下,你會這樣做。有時候你並沒有什麼特別的東西可以處理這個異常,但是你仍然不想讓它繼續下去,無論它是什麼類型的異常(這在需要永久運行的應用程序中也很常見,例如服務器許多錯誤都會被捕獲並記錄,系統只會盡最大努力繼續爲最佳,因爲它可以運行

這樣做,不過,需要注意except Exception [as e]:except:之間的區別,因爲在這個問答& A中所描述: Difference between except: and except Exception as e: in Python