在Python3中,如何基于字符串参数捕获一般异常?
我正在与一个引发如下异常的API通信:引发时间异常 如何仅在字符串参数为时间结束时捕获异常 我不想做: 除例外情况外: 通过 我想做一些类似的事情: 除时间外: 通过 但是,这并没有捕获异常 回溯示例: 文件test.py,第250行,在超时处理程序中 提出时间例外 例外情况:时间结束 如果需要,请使用Exception.args进行筛选:在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
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。添加了另一个。希望姆吉尔森能更新他的答案。