如何在IronPython中打印脚本行号?

时间:2010-07-01 19:48:24

标签: python ironpython

我在c#应用程序中运行IronPython脚本,我正在捕获脚本中的异常,我希望找出抛出异常的脚本行。这必须在脚本运行时完成,即。我不希望脚本终止以打印异常。

这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

如果inspect在IronPython下按预期工作(不太确定),这可以解决问题:

import inspect

filename, linenum, funcname = inspect.getframeinfo(inspect.currentframe())[:3]
print linenum

修改:备用解决方案:

import sys

frame = sys._getframe()
print frame.f_lineno

答案 1 :(得分:0)

没有尝试过铁蟒,但是:

import traceback

try:
    # something that raises exception
except YourException, _:
    traceback.print_exc()

这应该显示引发异常的地方的堆栈跟踪。除了打印之外,您还可以执行其他操作,例如打印到字符串,或获取堆栈帧。 traceback模块文档会告诉您更多信息。