Python:在API中引发异常的最佳做法

问题描述 投票:2回答:0

我正在编写一些模块来编写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错误可能真的很难!

如何处理这种情况?

python exception exception-handling
© www.soinside.com 2019 - 2024. All rights reserved.