我正在使用请求库编写一个容错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中所述的错误消息,该错误消息指示顺序不正确。我捕获错误的正确顺序是什么(以便不通过先捕获通用错误来掩盖更具体的错误),是否有通用的方法来确定此错误?

最佳答案

大多数异常都从RequestExceptionConnectionError继承(它们本身从RequestException继承)。 Python按照您在脚本中编写异常的顺序检查异常。如果要单独捕获异常,则将最叶子的异常放在首位,然后放置ConnectionError,并以RequestException结尾。或者,只需捕获RequestException即可捕获所有这些。

09-27 08:59