我嘗試自定義sys.excepthook
的行爲,如the recipe所述。無法覆蓋sys.excepthook
:
: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()
不會被調用。看來sys.excepthook = info
在我的python 2.5安裝中不起作用。
怎麼會有人去使用除與IPython的鉤子? – levesque 2010-11-20 20:39:21
這是部分誤導。 ipython本身也會捕獲異常,但是它的方式是使用sys.excepthook,所以你不能說它不使用sys.excepthook。不過,ipython會從用戶中刪除重寫此鉤子的能力。 – snapshoe 2010-11-21 00:44:38
@fugacity和Alex - 我如何在發生異常的範圍內啓動嵌入式shell?我剛纔在這裏打開了一個問題:http://stackoverflow.com/questions/15752437/opening-an-ipython-shell-on-any-uncatched-exception,發現這個線程似乎高度相關。也許你可能知道如何做到這一點。 – 2013-04-01 22:01:32