[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