我正在编写一些模块AbcStore
,我必须提出一些例外,例如TypeError, AttributeError, os.error, NotImplementedError
等
# example 1
if key == 'abcd':
raise NotImplmentedError
# example 2
os.remove(path)
在上述两种情况下,首先,我提出NotImplementedError
,然后第二次自动引发内置错误os.error
或WindowsError
等。(取决于)。
从Module / API用户的角度来看,他们甚至不知道这个os.remove
发生在哪里并且不明白!做这样的事情是不错的
try:
os.remove(path)
except os.error, e
raise AbcStoreException(e)
class AbcStoreException(Exception):
pass
或直接提升所有默认例外!可能很难跟踪API可能引发的所有错误!
如何处理这种情况?