溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中錯誤處理的原則有哪些

發(fā)布時間:2021-07-05 18:09:00 來源:億速云 閱讀:161 作者:Leah 欄目:編程語言

這篇文章給大家介紹Python中錯誤處理的原則有哪些,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。


錯誤絕不應(yīng)該悄悄傳遞...Errors should never pass silently…

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

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

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

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

除非顯式消除Unless explicitly silenced

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

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

關(guān)于Python中錯誤處理的原則有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI