Я хочу поймать urllib2.HTTPError
с дополнительной информацией, если это 404:
try:
data = urlopen(url)
except HTTPError, e: # Python 2.5 syntax
if e.code == 404:
raise HTTPError('data not found on remote')
else:
raise
, но это не работает, потому что инициализация HTTPError
принимает несколько недокументированных аргументов. Если это действительно сработало, то будет потеряна трассировка и исходное сообщение. Я также пробовал
if e.code == 404:
e.message = 'data not found on remote: %s' % e.message
raise
, но это просто повторно вызвало исключение без дополнительной информации. Что мне делать?