title: When to use `raise_for_status` vs `status_code` testing
body: <p>I have always used:</p>
  
  <pre><code>r = requests.get(url)
  if r.status_code == 200:
      # my passing code
  else:
      # anything else, if this even exists
  </code></pre>
  
  <p>Now I was working on another issue and decided to allow for other errors and am instead now using:</p>
  
  <pre><code>try:
      r = requests.get(url)
      r.raise_for_status()
  except requests.exceptions.ConnectionError as err:
      # eg, no internet
      raise SystemExit(err)
  except requests.exceptions.HTTPError as err:
      # eg, url, server and other errors
      raise SystemExit(err)
  # the rest of my code is going here
  </code></pre>
  
  <p>With the exception that various other errors could be tested for at this level, is one method any better than the other?</p>