此注意事項參考博文:異常機制使用細則.
1、不要太依賴異常機制
python的異常機制非常方便,對于信息的傳遞中十分好用(這里信息的傳遞主要有三種,參數傳遞,全局變量傳遞,以及異常機制傳遞),但濫用異常機制也會帶來一些負面影響。過度使用異常主要表現在兩個方面:①把異常和普通錯誤混淆在一起,不再編寫任何錯誤處理代碼,而是以簡單地引發異常來代苦所有的錯誤處理。②使用異常處理來代替流程控制。例子如下:
buf="hello"#例1:使用異常處理來遍歷arr數組的每個元素try:
i=0
whileTrue:
print(buf[i])
i+=1except:
pass#例2:使用流程控制避免下標訪問異常i=0whilei print(buf[i]) i+=1 例1中假如循環過度便會下標訪問異常,這時候把錯誤拋出,再進行一系列處理,顯然是不可取的,因為異常機制的效率比正常的流程控制效率差,顯然例2中簡單的業務流程就可以避開這種錯誤。所以不要熟悉了異常的使用方法后,遇到這種簡單邏輯,便不管三七二十一引發異常后再進行解決。對于完全己知的錯誤和普通的錯誤,應該編寫處理這種錯誤的代碼,增加程序的健壯性。只有對于外部的、不能確定和預知的運行時錯誤才使用異常。 2、不要在try塊中引入太多的代碼 在try塊里放置大量的代碼,這看上去很“簡單”,代碼框架很容易理解,但因為try塊里的代碼過于龐大,業務過于復雜,就會造成try塊中出現異常的可能性大大增加,從而導致分析異常原因的難度也大大增加。 而且當塊過于龐大時,就難免在try塊后緊跟大量的except塊才可以針對不同的異常提供不同的處理邏輯。在同一個try塊后緊跟大量的except塊則需要分析它們之間的邏輯關系,反而增加了編程復雜度。所以,可以把大塊的try塊分割成多個小塊,然后分別捕獲并處理異常。 3、不要忽略捕獲到的異常 不要忽略異常!既然己捕獲到異常,那么except塊理應做些有用的事情,及處理并修復異常。except塊整個為空,或者僅僅打印簡單的異常信息都是不妥的!具體的處理方式為: ①處理異常。對異常進行合適的修復,然后繞過異常發生的地方繼續運行;或者用別的數據進行計算,以代替期望的方法返回值;或者提示用戶重新操作,總之,程序應該盡量修復異常,使程序能恢復運行。 ②重新引發新異常。把在當前運行環境下能做的事情盡量做完,然后進行異常轉譯,把異常包裝成當前層的異常,重新傳給上層調用者。 ③在合適的層處理異常。如果當前層不清楚如何處理異常,就不要在當前層使用except語句來捕獲該異常,讓上層調用者來負責處理該異常。 以上內容為大家介紹了python異常使用注意事項,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.kei0345678.cn/