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

标签 python exception

当我有两个属于相同异常类但错误消息不同的 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/

相关文章:

c# - 显示 "The resource cannot be found"错误的自定义错误页面

iphone - Xcode 4.3.2 + iOS SDK 5.1 异常断点不起作用

c# - 通过 wcf 服务调用时数据库连接不起作用

python - 如何在 Python 中重复 x 分钟?

python - 从python访问服务器上的Hadoop

python - 使用 Access ODBC 创建包含 DECIMAL 列的表

java - Scanner 类的 nextInt() 方法不会在 while 循环中再次要求我输入?

java - 编写库(不是应用程序)时如何处理异常 - Java

python - 检查字典中是否存在键列表

python - 如何在 NLTK 中将荷兰语文本与西类牙语部分分开?