我正在使用请求库编写一个容错HTTP客户端,并且我想处理requests.exceptions
中定义的所有异常
以下是requests.exceptions
中定义的异常:
'''
exceptions.BaseHTTPError exceptions.HTTPError exceptions.ProxyError exceptions.TooManyRedirects
exceptions.ChunkedEncodingError exceptions.InvalidSchema exceptions.RequestException exceptions.URLRequired
exceptions.ConnectionError exceptions.InvalidURL exceptions.SSLError
exceptions.ContentDecodingError exceptions.MissingSchema exceptions.Timeout
'''
当我在应用程序上使用pylint时,我收到如http://pylint-messages.wikidot.com/messages:e0701中所述的错误消息,该错误消息指示顺序不正确。我捕获错误的正确顺序是什么(以便不通过先捕获通用错误来掩盖更具体的错误),是否有通用的方法来确定此错误?
最佳答案
大多数异常都从RequestException
或ConnectionError
继承(它们本身从RequestException
继承)。 Python按照您在脚本中编写异常的顺序检查异常。如果要单独捕获异常,则将最叶子的异常放在首位,然后放置ConnectionError
,并以RequestException
结尾。或者,只需捕获RequestException
即可捕获所有这些。