假設我正在使用庫X
,該庫指定例如exception.BaseError
是X
的所有例外的基類。確定要在Python中捕獲哪些例外
現在,還有另外一個例外,比如說X.FooError
,它當然是從exception.BaseError
繼承的,但是更通用一些,比方說它處理無效輸入。我們假設還有很多其他的類,從BaseError
開始,但是對於一般情況都是如此。
X
|
BaseError
|
FooError
所以我想然後檢查無效輸入。那麼我應該抓住哪個例外?當然,捕捉每個單獨的異常是不可能的,所以我趕上X.BaseError
,然後打印一條錯誤消息。或者我可以專門找到X.FooError
,但後來我錯過了所有其他的錯誤情況。
這是做到這一點的標準方式 - 捕捉基本異常?如果是,那麼爲什麼還存在其他例外情況?對於我們想要捕捉特定異常的廣義情況?
但是爲什麼抓住派生的一個,當基地可以處理一切? – user225312 2011-06-01 10:50:34
因爲您可能想要以與基本異常不同的方式處理派生異常。 – 2011-06-01 10:52:19
但是,如果我不想以不同的方式處理特定異常,那麼是否使用基本異常類呢? – user225312 2011-06-01 10:53:24