3
我在寫一個python程序訪問數據庫。我想在發出http請求時捕獲三種類型的異常。超時,網絡錯誤和http錯誤。我正在尋找處理這種情況的最佳方法。我需要在我的代碼多個區域多次檢查這些例外,它會是這個樣子,每次:Python異常處理 - 最佳實踐
try:
//some request
except timeout:
print '\nException: Timeout Error'
except connection error:
print '\nException: Network Error'
except http error, e:
print 'Exception: %s.' % e
既然我有這個多次這樣做,至少是可能的8個或更多,應該我創建一個模塊來處理這些異常或不是?同樣在哪些情況下,建議關閉我的系統而不是僅顯示一條消息?
謝謝。
出於好奇,當你做除外(超時,CONNECTION_ERROR,HTTP_ERROR)作爲E:這是否意味着,電子將字符串「超時」,「CONNECTION_ERROR」,「HTTP_ERROR 「,還是會是實際的錯誤?同樣,如果第一部分是這種情況,那麼你怎樣捕捉實際的錯誤,例如404錯誤或其他性質? – CoffeeIsProgramming 2013-04-28 22:46:46
我只是你的風格。你需要實際的錯誤;但是,您可以將它們存儲爲變量。它只是意味着'e'存儲了異常變量(它類似於像'with open(path)'這樣的語句作爲e:'爲了清楚起見,錯誤將保持相同的類型,如果你做了三個單獨的版本 - 所以如果你把'except(ValueError,TypeError)'作爲e:','e'將是一個'TypeError'或'ValueError' – 2013-04-28 23:01:21