这更多的是一个问题,而不是一个真正的问题。
我有一些使用python中SOAPpy库的代码:
from SOAPpy import SOAPProxy
...
try:
connection = SOAPProxy(settings.SOAP_URL)
session = connection.login(username, password)
user = connection.getUserInfo(session.session_hash, session.user_id)
groups = connection.getGroups(session.session_hash, settings.GROUP_ID)
group = next(group for group in groups.item
if group.name == settings.GROUP_NAME)
next(member for member in group.member.item
if member.user_name == user.username)
except:
return None
...
我的问题是:这部分代码可以引发哪个异常?
因为一位新的贡献者说,编写所有可以引发的异常更像Python。
谨致问候,Morony
对此有明确答案的最佳方法是阅读SOAPpy源代码。然而,这是繁琐的,浪费了实际的工作时间。除了SOAPPy自身的异常外,底层操作系统还可能导致IOError和OSError异常等等。
因为SOAPpy和许多其他库一样,不明确它可以引发什么异常,所以它基本上可以是任何东西。因此,在这种情况下,您不能是Python的,因为库作者选择了"不太Python",或者没有明确记录库的行为。
因此,这里要吸取的教训是,不要认为任何事情都是理所当然的,而是要运用你的常识。