On 2012-07-03 18:06, Marco Giusti wrote:
On Tue, Jul 03, 2012 at 05:45:57PM +0200, Matteo Boscolo wrote:
prova con ..

try:
    bla bla
except  SystemExit:
    return
except:
    bla bla

forse

        try:
                bla bla
        except  SystemExit:
                raise
        except:
                bla bla

Nope, non ci state prendendo. La cosa che non funziona è l'except nudo. Non si dovrebbe intercettare niente al di sopra di Exception se non per motivi speciali (tipo maneggiare il ctrl-C) Se guardate l'albero di ereditarietà delle eccezioni, SystemExit non deriva da Exception.

    try:
        blabla
    except Exception:
        blabla

...e quest'è. SystemExit e KeyboardInterrupt bucano questo except.

Alternativa per un'uscita rapida: usare os._exit. Il programma esce senza rilasciare eccezioni e senza neanche onorare finally: da usare se si sa quello che si sta facendo.


--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a