当我有两个属于相同异常类但错误消息不同的 Python 异常时,我该如何分别捕获它们?
对于特定的用例:
我正在使用 Facepy library点击 Facebook Graph API。当 API 返回与 Oauth 无关的错误时,Facepy 引发 facepy.exceptions.FacebookError
并传递 Facebook API 给出的错误消息。
我一直遇到两个不同的错误,我想以不同的方式对待它们,解析它们的唯一方法是错误消息,但我不知道如何编写我的 except
子句——这里是伪代码:
try:
#api query
except facepy.exceptions.OAuthError and error_message = 'object does not exist':
# do something
except facepy.exceptions.OAuthError and error_message = 'Hit API rate limit':
# do something else
如何编写这些 except
子句来触发异常和错误消息?
最佳答案
假设异常的错误消息在 error_message
属性中(它可能是其他东西——查看异常的 __dict__
或源代码来找出):
try:
#api query
except facepy.exceptions.OAuthError as e:
if e.error_message == "object does not exist":
print "Do X"
elif e.error_message == "Hit API rate limit":
print "Do Y"
else:
raise
关于python - 如何在 Python 中捕获具有特定错误消息的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188573/