我正在一个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