日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python函数式编程读取数据时出现错误_Python编程中,函数遇到问题是抛出错误好还是约定返回值好?...

發布時間:2025/3/11 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数式编程读取数据时出现错误_Python编程中,函数遇到问题是抛出错误好还是约定返回值好?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這其實是一個編碼規范的問題,沒有任何場景都適用的解決方案,就好比有了 list,但是還是需要 tuple,所以對于拋出異常好,還是返回值好,是需要具體情況看的。

在 C 語言中,通用的做法是函數返回一個 code 描述狀態,例如 main 函數,一般返回 0 就是正常,其他數值就需要去查錯誤碼。這種方式仍廣泛使用于 HTTP API 等接口。而到了面向對象編程語言,異常也是一個類的實例,用于表達特定的意思,這樣異常有了更豐富的表現方式,處理方式也顯得更優雅。

但是異常的捕獲就是萬能的了嗎?

并不是,現實情況是,不少人仍是“錯誤”的處理異常。例如從頭到尾的一個 try except,并且捕獲所有異常,這就是為了處理異常而處理異常,反而增加了代碼量。

異常捕獲其實也是需要講究技術的,就好比會寫代碼,不一定會寫出優雅的代碼、高效的代碼;會捕獲異常,不一定會“優雅”地捕獲異常。

對于開發團隊的管理者來說,一些編碼“規范”(例如何時改拋出異常,怎么捕獲等)也是越早立下越好,對于后期項目的維護和轉移是非常有利的。

對于開發者來說,一些編碼“規范”的培養,不但是個人編碼“素養”的提高,也是技術視野的提升。一段時間后反觀自己過去的代碼,一定會覺得怎么寫的這么“丑陋”。

下面我也簡單講一下什么場景下該怎么“使用”異常。

如下情況應該盡量使用異常處理:執行的錯誤情況非常多樣化,單一的返回值無法表示多種情況

執行的錯誤需要調用方區別對待

方法的調用層次比較深,拋出異常能使代碼更簡潔且易讀

用于鏈式調用的方法,例如生成器模式中,避免調用方多余的判斷

如下情況應該盡量避免使用異常處理:不要用異常做條件判斷,條件判斷語句的性能一般更好

方法返回值簡單,且用于條件判斷的,例如 if 語句中的子串查找都用 find 而不是 index

下面是異常處理的一些規范分享:不要在最外層調用整段 try except,這非常不負責任,而且也不好 debug

一般捕獲的都是 Exception 異常的子類,一般情況下不用捕獲底層異常

系統一般都推薦定義自己的異常類(甚至是異常類樹),即使內容是空的(最好有文檔和__str__),便于區分

盡量捕獲明確的子類異常,用多 catch 捕獲,最后可以捕獲 Exception,不要上來就直接捕獲 Exception,區分異常的類型能更好的幫助我們區別處理

不要為了不拋出異常而去捕獲并拋棄,如果不能處理,就拋給上層調用者

要善于使用 finally 和 else,特別是數據庫事務,連接等需要主動關閉或回滾的情況

不需要每次捕獲都打印日志,規劃好日志級別,不然日志會難以閱讀

捕獲嚴重異常后打印日志最好用 traceback 帶上調用鏈信息,便于定位問題

先寫這么多吧,語言等技術只是實現方式,最后還是得看我們需要解決的問題。

總結

以上是生活随笔為你收集整理的python函数式编程读取数据时出现错误_Python编程中,函数遇到问题是抛出错误好还是约定返回值好?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。