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

如何在出现“Unsuccessful command:”时跳转语句?Phases索引报错求助

解决PlxScripting结果获取异常与动态索引测试问题

一、捕获异常跳过报错语句

你遇到的PlxScriptingError本质是:当Phases索引为0-2时,对应阶段根本没有生成NodeToNodeAnchor.X类型的结果,导致getresults命令返回空触发了错误。要实现“遇到报错就跳转到下一条语句”,直接用Python的异常捕获机制就能搞定——把可能出错的代码放在try块里,用except精准捕获特定异常,然后在except块里做跳过处理即可。

示例代码:

# x是你的动态索引变量
x = 0  # 替换成你实际的动态值
try:
    testing = plateX = g_o.getresults(g_o.Phases[x], g_o.ResultTypes.NodeToNodeAnchor.X, 'node')
    # 执行到这里说明获取成功,可添加结果处理逻辑
    print(f"Phase {x}的结果获取成功")
except plxscripting.plx_scripting_exceptions.PlxScriptingError as e:
    # 只处理“无结果返回”的特定报错
    if "Unsuccessful command: The command did not deliver any results" in str(e):
        print(f"Phase {x}无对应结果,跳过当前语句")
    else:
        # 其他PlxScripting错误可选重新抛出,避免遗漏未知问题
        raise
# 后续语句不受前面报错影响,会正常执行
print("继续执行下一条逻辑")

二、动态索引的批量测试方案

既然Phases[x]是动态变化的,建议写一个循环遍历所有Phase索引,批量测试哪些索引能正常获取结果,哪些会报错,这样能快速定位有效阶段:

# 遍历所有Phase索引
for x in range(len(g_o.Phases)):
    try:
        plateX = g_o.getresults(g_o.Phases[x], g_o.ResultTypes.NodeToNodeAnchor.X, 'node')
        print(f"✅ Phase {x}:成功获取结果,结果条数:{len(plateX)}")
    except plxscripting.plx_scripting_exceptions.PlxScriptingError as e:
        if "Unsuccessful command: The command did not deliver any results" in str(e):
            print(f"❌ Phase {x}:无对应结果,跳过")
        else:
            print(f"⚠️ Phase {x}:发生其他异常:{str(e)}")

运行这段代码后,你能清晰看到每个Phase索引的状态,后续动态使用时可以提前判断,或者直接用try-except兜底处理。

补充说明

为什么0-2阶段会报错?大概率是这些阶段属于模型初始化、加载或预计算阶段,还没生成NodeToNodeAnchor.X对应的结果数据;而3及以上阶段是完成了核心计算的阶段,所以能正常返回结果。如果想确认每个阶段支持的结果类型,可以用g_o.getresulttypes(g_o.Phases[x])来查看该阶段的所有可用结果类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:52:21