[Python] Problema con try except

Daniele Varrazzo piro a develer.com
Gio 5 Lug 2012 09:39:01 CEST


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


Maggiori informazioni sulla lista Python