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

4 投票
2 回答
1452 浏览
提问于 2025-04-16 00:42

我在一个C#应用程序里运行一个IronPython脚本,我在脚本中捕捉异常,并且我想知道异常是在哪一行代码抛出的。这个过程需要在脚本运行的时候进行,也就是说,我不想让脚本停止运行来打印这个异常。

这样做有可能吗?

2 个回答

0

我还没在IronPython上试过这个,但:

import traceback

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

这段代码应该能让你看到异常发生的地方的堆栈跟踪。除了打印信息,你还可以做其他事情,比如把信息打印成字符串,或者获取堆栈帧的内容。想了解更多,可以查看traceback模块的文档。

1

如果在IronPython下inspect能正常工作(我不太确定),那么这个方法可能会有效:

import inspect

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

补充说明: 另一种解决方案:

import sys

frame = sys._getframe()
print frame.f_lineno

撰写回答