[Docs] Traduzione + dubbio
Manlio Perillo
manlio_perillo a libero.it
Dom 30 Lug 2006 17:30:39 CEST
Vitale Antonio ha scritto:
> In allegato l'aggiornamento di:
> http://svn.python.it/python/python/Doc/branches/2.4.3/lib/libarray.tex
> e di
> http://svn.python.it/python/python/Doc/branches/2.4.3/lib/libasyncore.tex
>
Ok, grazie come sempre!
> Ho un dubbio su un passo che sto traducendo del seguente file:
> http://svn.python.it/python/python/Doc/branches/2.4.3/lib/libasyncore.tex
libatexit
> riga 48-50 recita:
> "After all exit handlers have had a
> chance to run the last exception to be raised is re-raised."
> Non avendo esperienza in merito ai gestori d'evento...traducendo
> testualmente quel "have had" secondo me è da interdersi in modo
> "familiare", "figurato" cioe (come recita anche il Zanichelli):
> "essere finito", "aver perso l'ulrima occasione"
> quindi la traduzione verrebbe:
> "Dopo che i gestori d'uscita hanno perso l'occasione di eseguire
> l'ultima eccezione sollevata, questa viene
> risollevata."
> Può essere giusta come traduzione oltre al fatto che un'eccezione venga
> risollevata?
>
Nemmeno io sono sicurissimo, magari nel testo originale manca una virgola.
Io tradurrei:
"Dopo che tutti i <<gestori di uscita>> hanno avuto una occasione di
<<girare>>, l'ultima eccezione da sollevare è risollevata"
In pratica in caso una funzione registrata come handler lancia una
eccezione, questa viene bloccata e si passa ad eseguire i gestori
successivi.
Alla fine, solo l'eccezione lanciata più recentemente viene risollevata.
Infatti il testo completo è:
If an exception is raised during execution of the exit handlers, a
traceback is printed (unless SystemExit is raised) and the exception
information is saved. After all exit handlers have had a chance to run
the last exception to be raised is re-raised.
Ad esempio nel seguente codice:
import atexit
def _1():
print "ok from 1"
def _2():
raise RuntimeError("from 2")
def _3():
print "ok from 3"
def _4():
raise RuntimeError("from 4")
atexit.register(_1)
atexit.register(_2)
atexit.register(_3)
atexit.register(_4)
L'output è (le funzioni vengono chiamate in ordine opposto rispetto a
cui vengono registrate):
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "C:\Python2.4\lib\atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File
"F:\home\manlio\Documenti\Projects\local\languages\Python\Test\test_atexi
t.py", line 13, in _4
raise RuntimeError("from 4")
RuntimeError: from 4
ok from 3
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "C:\Python2.4\lib\atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File
"F:\home\manlio\Documenti\Projects\local\languages\Python\Test\test_atexi
t.py", line 7, in _2
raise RuntimeError("from 2")
RuntimeError: from 2
ok from 1
Error in sys.exitfunc:
Traceback (most recent call last):
File "C:\Python2.4\lib\atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File
"F:\home\manlio\Documenti\Projects\local\languages\Python\Test\test_atexi
t.py", line 7, in _2
raise RuntimeError("from 2")
RuntimeError: from 2
Come si vede il traceback dell'ultima funzione è presente due volte, e
nell'ultimo caso nella funzione sys.exitfunc.
> P.S.
> Complimenti per come il sito è in corso di aggiornamento!
>
Ti dico solo che sei più produttivo tu, in questo momento ;-).
Comunque quello che resta da fare è aggiungere le icone di validazione
XHTML 1.0 Strict e CSS, oltre che le informazioni sull'hosting e
l'autore del design.
Fatto questo aggiorno le news e comincio ad aggiungere dei link esterni
di gente che me lo ha chiesto oltre 1 mese fa... (chiedo perdono ;-)).
Saluti Manlio Perillo
Maggiori informazioni sulla lista
Docs