加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何在Python中捕获具有特定错误消息的异常?

发布时间:2020-12-20 11:31:39 所属栏目:Python 来源:网络整理
导读:当我有两个 Python异常是相同的异常类但是有不同的错误消息时,我该如何单独捕获它们? 具体用例: 我正在使用Facepy library来点击Facebook Graph API.当API返回与Oauth无关的错误时,Facepy会引发facepy.exceptions.FacebookError并传递Facebook API提供的错
当我有两个 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读