Python異常、錯誤碼與程序穩定性閒談

在用python做過幾個比較追求穩定性的項目之後,突然覺得,golang回歸到使用錯誤碼的選擇一定程度上是對的。在python下,總有捕捉不完的異常,程序不跑一跑,很難知道到底哪裏會出問題。

解決穩定性這一問題方法只有一個,將錯誤碼出現的地方都找出來,逐一try...catch,纔可以在問題出現時及時解決。然而這卻是一份浩大的工程,將try...catch放到多小的粒度(一個語句,還是函數),也是一個艱難的選擇。

定義良好的接口是另一種解決的途徑,將每一步的輸入輸出都標準化,便可以讓try...catch在流程的每一個非關鍵環節中解決問題,異常更應該用在非關鍵不重要的,小段的代碼上,對於系統自帶的異常,和引入模塊的異常,應該儘早解決。

總的來說,錯誤碼與異常機制是統一的,也是相對的,異常可以簡化對錯誤碼的判斷過程,減少判斷次數,是錯誤碼機制的一個替代,而兩者也並不是不可共用的。對於python來說,越是大型的項目就應該越傾向於使用錯誤碼機制(其他語言也是),而相對於golang,python在小規模代碼(一個小模塊)中使用異常機制是可取的,簡單的。以不影響全局運作爲根本,可以將一些小概率異常先留下來再進行進一步分析有助於項目的快速上線。


p.s. 發覺自己寫這些純理論的東西常常會亂78糟。這篇閒談就當入職金山一個月的總結吧。

p.s.2 不想黑金山的python代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章