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.