Io vorrei modificare l'eccezione HTTPError presente in urllib2 per riuscire
a farle ritornare, oltre al messaggio di errrore, anche il codice della
pagina sorgente e il rispettivo header; per far questo, mi pare di aver
capito che si deve aggiungere l'attributo args, nell'eccezione, contente la
tupla con i parametri che voglio ritornare. [Perchč?]
Come faccio io ad aggiungere la tupla se la classe non trova gli elementi
che io richiedo in uscita?
Mi spiego meglio: la classe in questione non dichiara alcun attributo ma,
nel metodo __init__() inizializza tutti gli attributi.
class HTTPError(URLError, addinfourl):
__super_init=addinfourl.__init__
def __init__(self,url,code,msg,hdrs,fp):
self.__super_init(fp, hdrs, url)
self.code=code
self.msg=msg
self.hdrs=hdrs
self.fp=fp
# XXX
self.filename=url
Quindi come faccio ad aggiungere dall'esterno, senza intervenire
direttamente sul codice della libreria, l'elemento args?
Vorrei ottenere questo:
class HTTPError(URLError, addinfourl):
__super_init=addinfourl.__init__
def __init__(self,url,code,msg,hdrs,fp):
self.__super_init(fp, hdrs, url)
---> self.args=(code,msg,fp,hdrs,url)
self.code=code
self.msg=msg
self.hdrs=hdrs
self.fp=fp
# XXX
self.filename=url
GRAZIE
E-