Python:在API中引发异常的最佳实践

时间:2014-05-03 09:03:58

标签: python exception exception-handling

我正在编写一些模块AbcStore,我必须提出一些例外,例如TypeError, AttributeError, os.error, NotImplementedError

# example 1
if key == 'abcd':
   raise NotImplmentedError

# example 2
os.remove(path)

在上述两种情况下,首先,我提出NotImplementedError,然后第二次自动引发内置错误os.errorWindowsError等。(取决于)。

从Module / API用户的角度来看,他们甚至不知道这个os.remove发生在哪里并且不明白!做这样的事情是不错的

try:
    os.remove(path)
except os.error, e
    raise AbcStoreException(e)

class AbcStoreException(Exception):
    pass

或直接提升所有默认例外!可能很难跟踪API可能引发的所有错误!

如何处理这种情况?

0 个答案:

没有答案