11.5.3 Oggetti BaseHandler

Gli oggetti BaseHandler forniscono un insieme di metodi che sono utili direttamente, ed altri che si intendono per essere utilizzati da classi derivate. Questi sono quelli intesi per l'uso diretto:

add_parent( director)
Aggiunge un director come padre.

close( )
Rimuove ogni padre.

I seguenti membri e metodi dovrebbero essere usati solo da classi derivate da BaseHandler:

parent
Un OpenerDirector valido, che pu� essere usato per aprire usando un protocollo differente, o per gestire errori.

default_open( req)
Questo metodo non viene definito in BaseHandler, ma le sotto classi dovrebbero definirlo se vogliono intercettare tutte le URL.

Questo metodo, se implementato, verr� chiamato dall'OpenerDirector padre. Dovrebbe restituire un oggetto simile a file, come descritto nel valore restituito da open() di OpenerDirector, o None. Dovrebbe sollevare l'eccezione URLError, finch� un qualcosa di realmente eccezionale accada (per esempio, MemoryError non dovrebbe essere mappata con URLError).

Questo metodo sar� chiamato prima di ogni metodo di apertura specifica del protocollo.

protocol_open( req)
Questo metodo non viene definito in BaseHandler, ma le sotto classi dovrebbero definirlo se vogliono gestire URL con il protocollo indicato.

Questo metodo, se definito, sar� chiamato dall'OpenerDirector padre. I valori restituiti dovrebbero essere gli stessi di default_open().

unknown_open( req)
Questo metodo non viene definito in BaseHandler, ma le sotto classi dovrebbero definirlo se vogliono intercettare tutte le URL senza uno specifico handler registrato per la sua apertura.

Questo metodo, se implementato, verr� chiamato dall'OpenerDirector padre. I valori restituiti dovrebbero essere gli stessi di default_open().

http_error_default( req, fp, code, msg, hdrs)
Questo metodo non viene definito in BaseHandler, ma le sotto classi dovrebbero sovrascriverlo se intendono fornire un sistema acchiappa tutto per gli errori HTTP non altrimenti gestiti. Verr� chiamato automaticamente dall'OpenerDirector che riceve l'errore, e non dovrebbe essere normalmente chiamato in altre circostanze.

req sar� un oggetto Request, fp sar� un oggetto simile a file con il corpo dell'errore HTTP, code sar� un codice di tre cifre dell'errore, msg sar� la spiegazione visibile all'utente del codice e hdrs sar� un oggetto corrispondente alle intestazioni dell'errore.

I valori restituiti e le eccezioni sollevate dovrebbero essere le stesse di urlopen().

http_error_nnn( req, fp, code, msg, hdrs)
nnn dovrebbe essere un codice di errore HTTP di tre cifre. Anche questo metodo non viene definito in BaseHandler, ma sar� chiamato, se esiste, su di una istanza di una sotto classe, quando interviene un errore HTTP con codice nnn.

Le sotto classi dovrebbero sovrascrivere questo metodo per gestire errori HTTP specifici.

Argomenti, valori restituiti ed eccezioni sollevate dovrebbero esser le stesse come per http_error_default().

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.