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

如何在父Notebook中获取并使用子Notebook返回的exit信息?

在父Notebook中获取子Notebook的返回错误信息

dbutils.notebook.run() 方法的返回值就是子Notebook通过 dbutils.notebook.exit() 输出的内容,你可以直接接收该返回值,再根据约定的格式判断并处理错误信息。如果子Notebook出现未捕获的异常,父Notebook可通过异常捕获获取详情。

1. 子Notebook主动返回错误信息

子Notebook中捕获异常后,通过 dbutils.notebook.exit() 返回格式化的错误内容:

# 子Notebook代码
try:
    # 模拟执行失败逻辑
    raise ValueError("输入数据为空")
except Exception as e:
    # 返回带标识的错误信息
    dbutils.notebook.exit(f"ERROR: {str(e)}")

父Notebook接收返回值并判断处理:

# 父Notebook代码
child_notebook_path = "/Workspace/路径/到/子Notebook"
timeout = 3600

# 获取子Notebook返回结果
return_msg = dbutils.notebook.run(child_notebook_path, timeout)

# 根据约定的前缀判断是否为错误
if return_msg.startswith("ERROR:"):
    print(f"子Notebook执行失败:{return_msg}")
    # 可根据需求抛出异常、记录日志或执行后续处理
    raise Exception(return_msg)
else:
    print("子Notebook执行完成,返回结果:", return_msg)

2. 捕获子Notebook的未处理异常

如果子Notebook未主动处理异常,父Notebook可通过try-except捕获执行过程中的异常:

# 父Notebook代码
child_notebook_path = "/Workspace/路径/到/子Notebook"
timeout = 3600

try:
    return_msg = dbutils.notebook.run(child_notebook_path, timeout)
    print("子Notebook执行成功:", return_msg)
except Exception as e:
    error_detail = str(e)
    print(f"子Notebook执行失败,异常信息:{error_detail}")
    # 这里可添加日志记录、告警等逻辑

关键提示

  • 可以约定更复杂的返回格式(如JSON字符串),方便父Notebook解析错误码、错误详情等多维度信息
  • dbutils.notebook.run() 的超时时间需根据子Notebook的实际执行时长合理设置
  • 若子Notebook执行超时,run() 会直接抛出超时异常,同样可通过try-except捕获处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:03:16