Python requests exception handling

后端 未结 5 1929
梦谈多话
梦谈多话 2020-12-25 09:43

How to handle exceptions with python library requests? For example how to check is PC connected to internet?

When I try

try:
    requests.get(\'http         


        
5条回答
  •  时光说笑
    2020-12-25 10:34

    As per the documentation, I have added the below points:-

    1. In the event of a network problem (refused connection e.g internet issue), Requests will raise a ConnectionError exception.

      try:
         requests.get('http://www.google.com')
      except requests.ConnectionError:
         # handle ConnectionError the exception
      
    2. In the event of the rare invalid HTTP response, Requests will raise an HTTPError exception. Response.raise_for_status() will raise an HTTPError if the HTTP request returned an unsuccessful status code.

      try:
         r = requests.get('http://www.google.com/nowhere')
         r.raise_for_status()
      except requests.exceptions.HTTPError as err:
         #handle the HTTPError request here
      
    3. In the event of times out of request, a Timeout exception is raised.

      You can tell Requests to stop waiting for a response after a given number of seconds, with a timeout arg.

      requests.get('https://github.com/', timeout=0.001)
      # timeout is not a time limit on the entire response download; rather, 
      # an exception is raised if the server has not issued a response for
      # timeout seconds
      
    4. All exceptions that Requests explicitly raises inherit from requests.exceptions.RequestException. So a base handler can look like,

      try:
         r = requests.get(url)
      except requests.exceptions.RequestException as e:
         # handle all the errors here
      

提交回复
热议问题