從知乎作者Rui L學來的一招。應該用過 IPython 吧?想象一下,拋出異常時自動把你帶到 IPython Shell 是不是很開心?而且和普通的IPython不同,這個時候可以調用 p (print), up(up stack), down(down stack) 之類的命令。還能創建臨時變數... ...
從知乎作者Rui L
學來的一招。
應該用過 IPython 吧?想象一下,拋出異常時自動把你帶到 IPython Shell 是不是很開心?而且和普通的IPython不同,這個時候可以調用 p (print), up(up stack), down(down stack) 之類的命令。
還能創建臨時變數,執行任意函數。事實上這是可以實現的, 而且很簡單。
首先安裝ipython,然後把以下代碼保存為 crash_on_ipy.py
import sys
class ExceptionHook:
instance = None
def __call__(self, *args, **kwargs):
if self.instance is None:
from IPython.core import ultratb
self.instance = ultratb.FormattedTB(mode='Plain',
color_scheme='Linux', call_pdb=1)
return self.instance(*args, **kwargs)
sys.excepthook = ExceptionHook()
然後在你的項目代碼某個地方 import crash_on_ipy 就可以了。
效果圖:

轉載請註明作者和出處(reposkeeper),請勿用於任何商業用途!
關註微信公眾號,獲取新文章的推送!