我在c#应用程序中运行IronPython脚本,我正在捕获脚本中的异常,我希望找出抛出异常的脚本行。这必须在脚本运行时完成,即。我不希望脚本终止以打印异常。
这甚至可能吗?
答案 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模块文档会告诉您更多信息。