Python的異常處理能力非常強(qiáng)大,但是用不好也會帶來負(fù)面的影響。我平時寫程序的過程中也喜歡使用異常,雖然采取防御性的方式編碼會更好,但是交給異常處理會起到偷懶作用。偶爾會想想異常處理會對性能造成多大的影響,于是今天就試著測試了一下。
允許使用異常, 但必須小心。
異常是一種跳出代碼塊的正??刂屏鱽硖幚礤e誤或者其它異常條件的方式。
正常操作代碼的控制流不會和錯誤處理代碼混在一起. 當(dāng)某種條件發(fā)生時, 它也允許控制流跳過多個框架. 例如, 一步跳出N個嵌套的函數(shù), 而不必繼續(xù)執(zhí)行錯誤的代碼。
可能會導(dǎo)致讓人困惑的控制流. 調(diào)用庫時容易錯過錯誤情況。
異常必須遵守特定條件:
像這樣觸發(fā)異常: raise MyException("Error message")
或者 raise MyException
. 不要使用兩個參數(shù)的形式( raise MyException, "Error message"
)或者過時的字符串異常( raise "Error message"
)。
模塊或包應(yīng)該定義自己的特定域的異?;? 這個基類應(yīng)該從內(nèi)建的Exception類繼承. 模塊的異?;悜?yīng)該叫做”Error”。
class Error(Exception): pass
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。