You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansys 2021 R2中IronPython在SpaceClaim脚本编辑器回溯行号错误问题

解决IronPython在SpaceClaim脚本编辑器中异常行号错误的问题

在Ansys 2021 R2的SpaceClaim脚本编辑器中使用IronPython时,直接通过sys.exc_info()获取的行号不准确,是因为嵌入环境对脚本做了预处理或包装,导致顶层栈帧的行号指向了非用户代码的位置。

可以通过traceback模块的extract_tb方法获取真实的异常行号,修改后的测试代码如下:

import sys
import traceback

a = 10 
try:
    b = a / 0
except Exception as e:
    # 提取完整的栈跟踪信息
    stack_trace = traceback.extract_tb(sys.exc_info()[2])
    # 取最后一条栈帧记录,对应异常发生的位置
    _, lineno, _, _ = stack_trace[-1]
    print(f"lineno: {lineno}")

这段代码会输出正确的行号6。

另外,也可以直接打印完整的栈跟踪来验证:

import traceback

a = 10 
try:
    b = a / 0
except Exception as e:
    traceback.print_exc()

输出的traceback信息中会明确标注异常发生在第6行。

原因在于:SpaceClaim的IronPython环境会对用户脚本进行包装执行,sys.exc_info()返回的初始tb对象指向的是包装代码的行,而非用户编写的脚本行。traceback.extract_tb会解析整个栈跟踪链,从中筛选出用户代码对应的栈帧记录,从而得到正确的行号。

内容的提问来源于stack exchange,提问作者SchluppIng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:05:29