2009-08-10 132 views
0

捕獲的異常,我希望在Django的開發服務器的一些方法,這將使服務器在任何未捕獲的異常自動停止,因爲它是在IPython的控制檯PDB模式下進行。捕獲通過Django開發服務器

我知道把進口PDB;將pdb.set_trace()換行到代碼中以停止應用程序。但是這對我沒有幫助,因爲引發異常的行被調用了太多次。所以我找不到確切的條件來定義一個條件斷點。

這可能嗎?

謝謝...

回答

2

您可以設置sys.excepthook到執行import pdb; pdb.pm(),按照this recipe功能。

+0

不知何故,我不能重寫sys.excepthook: http://stackoverflow.com/questions/1261668/cannot-override-sys-excepthook 這是正常的嗎? – 2009-08-11 16:59:28

+0

@Mert,爲我解釋回答這個問題,IPython中(在這個問題你提到你使用的)是不同的。因此,要麼運行'ipython -pdb',要麼運行這個excepthook覆蓋的普通'python'。 – 2009-08-12 01:02:52

+0

@亞歷克斯,感謝您的解釋。 我有一個問題: 我可以通過重寫sys.excepthook捕捉任何未捕獲的異常,當我運行一個Python腳本。那很好。 但是當我運行Django的服務器這個配方不起作用。這個異常是由django捕獲和記錄的。 是否有可能讓pdb捕獲異常? – 2009-08-12 08:55:39