当我有两个
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
如何编写这些除了子句以触发异常和错误消息?
最佳答案 facepy的OAuthError派生自FacebookError并具有消息属性.
https://github.com/jgorset/facepy/blob/master/facepy/exceptions.py#L8.所以,你可以使用if条件和这样的消息
try:
#api query
except facepy.exceptions.OAuthError as error:
if 'object does not exist' == error.message:
# do something
elif 'Hit API rate limit' == error.message:
# do something else
else:
raise