成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 處理錯誤的原則

開發 后端
這是 Python 之禪特別系列的一部分,重點是第十和第十一條原則:沉默的錯誤(或不沉默)。

[[378993]]

這是 Python 之禪特別系列的一部分,重點是第十和第十一條原則:沉默的錯誤(或不沉默)。

處理“異常情況”是編程中爭論最多的問題之一。這可能是因為風險很大:處理不當的錯誤值甚至可以使龐大的系統癱瘓。由于“異常情況”從本質上來說,是測試不足的,但發生的頻率卻令人不快,因此,是否正確處理它們往往可以將一個噩夢般的系統與一個“可以工作”的系統區分開來。

從 Java 的 checked 異常,到 Erlang 的故障隔離,再到 Haskell 的 Maybe,不同的語言對錯誤處理的態度截然不同。

這兩條 Python 之禪是 Python 對這個話題的冥思。

錯誤絕不應該悄悄傳遞...Errors should never pass silently…

當 Python 之禪在 Tim Peters 眼里閃爍而出之前,在維基百科被俗稱為“維基”之前,第一個維基網站 C2 就已經存在了,它是一個編程指南的寶庫。這些原則大多來自于 Smalltalk 編程社區。Smalltalk 的思想影響了許多面向對象的語言,包括 Python。

C2 維基定義了武士原則Samurai Principle:“勝利歸來,要么不歸。”用 Python 人的術語來說,它鼓勵摒棄哨兵值sentinel value,比如用返回 None 或 -1 來表示無法完成任務,而是采用引發異常的方式。一個 None 是無聲的:它看起來像一個值,可以放在一個變量中,然后到處傳遞。有時,它甚至是一個有效的返回值。

這里的原則是,如果一個函數不能完成它的契約,它應該“高調失敗”:引發一個異常。所引發的異常永遠不會看起來像是一個可能的值。它將跳過 returned_value = call_to_function(parameter) 行,并上升到調用棧中,可能使程序崩潰。

崩潰的調試是很直接的:有一個堆棧跟蹤來指示問題以及調用堆棧。崩潰可能意味著程序的必要條件沒有滿足,需要人為干預。它可能意味著程序的邏輯有問題。無論是哪種情況,高調失敗都比一個隱藏的、“缺失”的值要好。用 None 來感染程序的有效數據,直到它被用在某個地方,就如你可能已經知道的,錯誤信息會說 “None 沒有方法進行拆分”。

除非顯式消除Unless explicitly silenced

有時需要顯式地捕獲異常。我們可能會預見到文件中的某些行格式錯誤,并希望以特殊的方式來處理它們,也許可以把它們放在一個“需要人來看看的行”的文件中,而不是讓整個程序崩潰。

Python 允許我們用 except 來捕獲異常。這意味著錯誤可以被顯式消除。這種明確性意味著 except 行在代碼審查中是可見的。質疑為什么應該在這里顯式消除異常并從異常中恢復,是有意義的。自問一下我們是否捕獲了太多或太少的異常也是有意義的。

因為這些全都是明確的,所以有人可以閱讀代碼并了解哪些異常是可以恢復的。

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2021-01-14 21:37:01

JavaScript開發代碼

2021-04-14 07:08:14

Nodejs錯誤處理

2024-09-23 16:49:32

2015-03-02 16:48:40

數據處理大數據原則

2023-11-30 07:15:36

GolangRecover

2010-10-20 17:37:23

SQL Server連

2021-04-29 09:02:44

語言Go 處理

2010-07-27 15:39:32

telnet smtp

2014-11-17 10:05:12

Go語言

2025-01-16 16:36:00

2011-05-18 13:44:31

MySQL

2024-03-27 08:18:02

Spring映射HTML

2021-03-02 07:31:26

WebApiweb

2023-12-26 22:05:53

并發代碼goroutines

2025-02-10 09:49:00

2010-03-10 14:34:52

Python異常處理

2024-10-07 08:26:05

編程Python異常處理

2024-04-16 12:18:05

編程異常處理錯誤返回

2016-09-07 20:28:17

MySQL存儲數據庫

2010-07-20 13:29:30

Telnet服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费视频观看 | 亚洲一区视频在线 | 亚洲一区二区三区免费观看 | 日本不卡一区 | 蜜桃视频成人 | 日韩一区二区免费视频 | 国产精品视频久久久久久 | 国产成人精品一区二区三区视频 | 国产免费一区二区三区最新6 | 成人免费在线观看 | 中文字幕一区二区三区四区五区 | 美女爽到呻吟久久久久 | 在线不卡一区 | 国产精品国产三级国产aⅴ原创 | 91久久夜色 | m豆传媒在线链接观看 | 国产一区二区三区日韩 | 亚洲精品v日韩精品 | 亚洲国产乱码 | 性色av香蕉一区二区 | 91精品国产乱码久久久久久久 | 伊人久久免费 | 免费天天干 | 日本三级黄视频 | 精品国产乱码久久久久久闺蜜 | 男女啪啪网址 | 亚洲精品68久久久一区 | 亚洲日韩中文字幕一区 | 精品国产欧美在线 | 紧缚调教一区二区三区视频 | 国产精品午夜电影 | 国产成人av一区二区三区 | 99热这里 | 欧美一区二区免费电影 | 国产区精品 | 伊人精品在线视频 | 国产成人在线视频免费观看 | 亚洲视频免费观看 | 国产欧美一区二区三区久久人妖 | 视频1区2区| 91极品视频 |