Provo a personalizzare il comportamento di sys.excepthook
come descritto da the recipe.non può sovrascrivere sys.excepthook
in ipython:
:import pdb, sys, traceback
:def info(type, value, tb):
: traceback.print_exception(type, value, tb)
: pdb.pm()
:sys.excepthook = info
:--
>>> x[10] = 5
-------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
NameError: name 'x' is not defined
>>>
pdb.pm()
non viene chiamato. Sembra che sys.excepthook = info
non funzioni nella mia installazione di python 2.5.
E come qualcuno andare sull'utilizzo tranne ganci con ipython? – levesque
Questo è parzialmente fuorviante. ipython intercetta le eccezioni, ma il modo in cui lo fa è usando sys.excepthook, quindi non si può dire che non usi sys.excepthook. ipython rimuove tuttavia dall'utente la possibilità di sovrascrivere questo hook. – snapshoe
@fugacity e Alex - Come posso avviare una shell incorporata nell'ambito in cui si verifica l'eccezione? Ho appena aperto una domanda qui: http://stackoverflow.com/questions/15752437/opening-an-ipython-shell-on-any-uncatched-exception e ho trovato questa discussione che sembra molto rilevante. Forse potresti sapere come farlo. –