有太多的专门例外;这是一个问题吗?

时间:2011-03-14 20:37:44

标签: python exception exception-handling

如果它们都来自某些特定于包的异常,是否存在大量不同异常的潜在问题?例如,我有FooException。然后,我从该包特定基地OutOfRangeOfSomethingException获得RanOutOfBufferExceptionOverflowMapBoundaryExceptionFooException。我知道拥有这个基础可以让用户和我自己

try:
    #stuff
except FooException:
    #Catch all my exceptions, but let default Python ones still raise

但这有什么其他问题吗?我应该尝试一些更普遍的例外,还是许多特定的例外?

N.B。具体而言,我所说的是能够在多个地方使用。我不打算 IntWasSlightlyTooLargeForInitializationOfMemoryObjectException

1 个答案:

答案 0 :(得分:4)

您拥有的异常类型越多,您必须维护的异常类型就越多。这是一个关于你需要对异常进行细粒度控制的问题,而不是你想要多少继续维持这种精细级别的数据。拥有更丰富的异常层次结构并没有真正的性能损失,问题在于是否真的有用这么深的东西。