我很難找到一個好的數(shù)據(jù)源來了解如何處理和引發(fā)異常。輔助函數(shù)或類方法是否應(yīng)該處理引發(fā)的問題,或者調(diào)用者處理捕獲異常的邏輯是否是正常約定?我們是否在兩個地方都這樣做并一直跟蹤堆棧跟蹤?選項A:def change_permissions(file): os.chmod(file, 0o755)try: change_permissions('/Users/user/Documents/file.txt')except Exception: print('do something with this')選項B:def change_permissions(file): try: os.chmod(file, 0o755) except EnvironmentError: print('do something with this')change_permissions('/Users/user/Documents/file.txt')
1 回答

白板的微信
TA貢獻(xiàn)1883條經(jīng)驗 獲得超3個贊
不要將異常捕獲為 e
捕獲 Exception 的問題與類型繼承有關(guān)(因此,插曲),因為我們不僅會捕獲應(yīng)用程序中的所有自定義異常,還會捕獲一大堆 Python 內(nèi)置異常,包括一些您可能不希望拋出的異常離開。你需要特別選擇,因為所以選項 B 是最好的選擇
其他最佳實踐
有一些在 python 中處理異常的最佳實踐,這一切都與你有關(guān)。
切勿使用異常進(jìn)行流量控制
不要暴露異常的實現(xiàn)細(xì)節(jié)
記錄代碼拋出的異常
了解我們在哪里需要斷言和異常。
添加回答
舉報
0/150
提交
取消