在Python3中,如何基于字符串参数捕获一般异常?

在Python3中,如何基于字符串参数捕获一般异常?,python,python-3.x,exception,exception-handling,Python,Python 3.x,Exception,Exception Handling,我正在与一个引发如下异常的API通信:引发时间异常 如何仅在字符串参数为时间结束时捕获异常 我不想做: 除例外情况外: 通过 我想做一些类似的事情: 除时间外: 通过 但是,这并没有捕获异常 回溯示例: 文件test.py,第250行,在超时处理程序中 提出时间例外 例外情况:时间结束 如果需要,请使用Exception.args进行筛选: try: raise Exception("end of time") except Exception as e: if e.args[0

我正在与一个引发如下异常的API通信:引发时间异常

如何仅在字符串参数为时间结束时捕获异常

我不想做:

除例外情况外: 通过 我想做一些类似的事情:

除时间外: 通过 但是,这并没有捕获异常

回溯示例:

文件test.py,第250行,在超时处理程序中 提出时间例外 例外情况:时间结束 如果需要,请使用Exception.args进行筛选:

try:
    raise Exception("end of time")
except Exception as e:
    if e.args[0] == 'end of time':
        pass # handle
    else:
        raise
如果需要,请使用Exception.args进行筛选:

try:
    raise Exception("end of time")
except Exception as e:
    if e.args[0] == 'end of time':
        pass # handle
    else:
        raise

好吧,理想的情况应该是引发一个自定义异常。因为情况并非如此,所以解决方法可以是检查异常消息

except Exception as exp:
    if str(exp) == 'end of time':
        # do something
    else:
        # pass or do something else

好吧,理想的情况应该是引发一个自定义异常。因为情况并非如此,所以解决方法可以是检查异常消息

except Exception as exp:
    if str(exp) == 'end of time':
        # do something
    else:
        # pass or do something else

stre也很好用。@Jean-François Fabre如果lene.args>1怎么办?stre也很好用。@Jean-François Fabre如果lene.args>1怎么办?消息属性仅在Python 2中可用。@MosesKoledoye不知道这一点。更新了我的答案。谢谢。消息属性仅在Python 2中可用。@MosesKoledoye不知道这一点。更新了我的答案。谢谢。@vaultah重复问题的链接不合适,因为答案不适用于Python 3。添加了另一个。希望mgilson会更新他的答案。@vaultah重复问题的链接不合适,因为答案不适用于Python 3。添加了另一个。希望姆吉尔森能更新他的答案。