Ich versuche, das Verhalten von sys.excepthook
wie von the recipe beschrieben anpassen.kann sys.excepthook nicht überschreiben
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()
heißt nicht werden. Es scheint, dass sys.excepthook = info
nicht in meiner Python 2.5-Installation funktioniert.
Und wie würde jemand gehen etwa mit ipython außer Haken? – levesque
Dies ist teilweise irreführend. ipython fängt Ausnahmen selbst ab, aber die Art und Weise, wie es funktioniert, ist die Verwendung von sys.excepthook, also kann man nicht sagen, dass es sys.excepthook nicht verwendet. ipython entfernt jedoch die Möglichkeit, diesen Hook außer Kraft zu setzen. – snapshoe
@fugacity und Alex - Wie kann ich eine eingebettete Shell in dem Bereich starten, in dem die Ausnahme auftritt? Ich habe gerade eine Frage hier geöffnet: http://stackoverflow.com/questions/15752437/opening-an-ipython-shell-on-any-uncatched-exception und fand diesen Thread, die sehr relevant scheinen. Vielleicht wissen Sie, wie Sie das tun können. –