1
如果有大量不同的異常(如果它們都是從某個特定於包的特例中派生出來的),是否存在潛在的問題?例如,我有FooException
。從那裏,我然後有OutOfRangeOfSomethingException
,RanOutOfBufferException
,OverflowMapBoundaryException
所有從該包的具體基地FooException
。我知道有這個基地允許用戶和我自己有太多專門的例外;這是一個問題嗎?
try:
#stuff
except FooException:
#Catch all my exceptions, but let default Python ones still raise
但是有沒有其他問題呢?我是否應該嘗試一些更廣泛的例外情況或許多特定情況?
N.B.具體而言,我說的是能夠在多個地方使用。我不打算有IntWasSlightlyTooLargeForInitializationOfMemoryObjectException
。
我認爲它使測試更容易,更穩定。 例如,檢查您的代碼生成的許多「ValueError」之一需要您的測試和用戶代碼來檢查這些錯誤的字符串。像任何好的代碼片段一樣,具有適當命名的異常比不必處理20次測試失敗要好得多,因爲庫開發人員改變了ValueError異常中的文本。 2美分。使用更多特定的例外。 – yesudeep 2011-07-02 17:38:18