requests.HTTPError uncaught after a requests.get() 404 response

error-handling, python, python-requests, try-catch

Solution

Interpreter is your friend:

import requests
requests.get('google.com/admin')
# MissingSchema: Invalid URL u'google.com/admin': No schema supplied

Also, `requests` exceptions:

import requests.exceptions
dir(requests.exceptions)

Also notice that by default `requests` doesn't raise exception if status is not `200`:

In [9]: requests.get('https://google.com/admin')
Out[9]: <Response [503]>

There is raise_for_status() method that does it:

In [10]: resp = requests.get('https://google.com/admin')

In [11]: resp
Out[11]: <Response [503]>

In [12]: resp.raise_for_status()
  ...
HTTPError: 503 Server Error: Service Unavailable

Problem

I'm having a slight problem with the requests library. Say for example I have a statement like this in Python: ``` try: request = requests.get('google.com/admin') #Should return 404 except requests.HTTPError, e: print 'HTTP ERROR %s occured' % e.code ``` For some reason the exception is not being caught. I've checked the API documentation for requests but it's a bit slim. Is there anyone who has more experience with the library that might be able to help me out?

Original source