我正在编写一些模块来编写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错误可能真的很难!
如何处理这种情况?