Если вы имеете в виду, что хотите прочитать тело 500:
request = urllib2.Request(url, data, headers)
try:
resp = urllib2.urlopen(request)
print resp.read()
except urllib2.HTTPError, error:
print "ERROR: ", error.read()
В вашем случае вам не нужно составлять запрос. Просто сделай
try:
resp = urllib2.urlopen(url)
print resp.read()
except urllib2.HTTPError, error:
print "ERROR: ", error.read()
Итак, вы не переопределяете urllib2.HTTPError, вы просто обрабатываете исключение.