我已經在我的項目這些文件:Python的 - 好的做法捕捉錯誤
- main.py
- module1.py
- module2.py
main
是主文件,這將是直接在控制檯執行。
module1
將導入main
並拋出Module1Exception
。
module2
將被導入到module1
,拋出Module2Exception
並使用LIB拋出NormalException
和CriticalException
例外。
關於所有異常應用程序應退出。
哪個選項是最有效的方法來捕捉這些錯誤?
一個)所有異常將在main
捕捉,打印消息並退出
B)允許允許模塊捕捉異常(module2
捕獲LIB異常,module1
捕捉僅Module2Exception
和main
捕捉Module1Exception
),打印消息並退出。
C)像b,除了模塊將不會退出,而是返回False並退出將在被稱爲main
編輯:
這將是服務器端程序,運行在後臺。我預計未來我將使用多臺具有全局日誌監控的服務器,如flume或scribe。異常必須被捕。這些文件僅是示例。事實上,我正在編寫一個作爲一種服務器的大型應用程序。在這一刻,我編寫了用於加載和解析配置文件的模塊。在這種情況下,如果發生任何異常,腳本應該退出。只有在這種情況下。加載配置文件並通過測試後,該腳本將保持無人值守。
你爲什麼抓住他們?除非有**理由趕上他們,否則你應該讓他們傳播。 「打印消息和退出」是在你根本沒有編寫任何異常處理代碼時發生的情況。你在問什麼? – 2011-05-20 03:01:14
例如,如果我在讀取文件時收到'IOError',我想通知用戶哪個文件導致了異常。我也喜歡漂亮的消息,而不是原始的異常數據:) – Galmi 2011-05-20 03:07:36
@Galmi:「我喜歡漂亮的消息,而不是原始的異常數據」。不是非常有用的信息。你得到IOError。那又怎麼樣?停止?改變一些,然後再試一次?捕捉異常的最「有效」的方式取決於(a)什麼例外和(b)你將如何處理異常。沒有單一的,簡單的規則。這取決於你要做什麼。 – 2011-05-20 09:52:58