我正在一個C#應用程序內運行一個IronPython腳本,我正在捕捉腳本中的異常,我希望找到引發異常的腳本行。這必須在腳本運行時完成,即。我不希望腳本終止以打印異常。如何在IronPython中打印腳本行號?
這甚至可能嗎?
我正在一個C#應用程序內運行一個IronPython腳本,我正在捕捉腳本中的異常,我希望找到引發異常的腳本行。這必須在腳本運行時完成,即。我不希望腳本終止以打印異常。如何在IronPython中打印腳本行號?
這甚至可能嗎?
如果inspect
工作作爲IronPython的(不是很確定)項下的預期是,這可能做的伎倆:
import inspect
filename, linenum, funcname = inspect.getframeinfo(inspect.currentframe())[:3]
print linenum
編輯:另一種解決方案:
import sys
frame = sys._getframe()
print frame.f_lineno
尚未在嘗試這樣做ironpython but:
import traceback
try:
# something that raises exception
except YourException, _:
traceback.print_exc()
這應該顯示引發異常的地方的堆棧跟蹤。你也可以做其他的事情,而不僅僅是打印,比如打印到字符串,或者獲取堆棧幀。 traceback模塊文檔會告訴你更多。
我不能這樣做,當我'進口檢查'我得到一個C#異常'沒有名爲檢查模塊'。 還有別的辦法嗎? – LoudNPossiblyWrong 2010-07-01 19:55:51
增加了一個替代解決方案 – ChristopheD 2010-07-01 20:07:11
,但沒有工作,但謝謝你的努力,這似乎是一個irionpython限制 – LoudNPossiblyWrong 2010-07-01 21:08:13