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

如何在Python异常输出末尾添加自定义业务提示信息?

问题场景

运行以下Python代码时会触发索引越界异常:

l = [1,2,3]
index = 4
l[index]

默认控制台输出如下:

trace
IndexError: list index out of range
Process finished with exit code 1

需要在异常输出末尾追加自定义业务提示,最终输出效果为:

trace
IndexError: list index out of range
自定义业务提示(如:该异常发生于工作流X执行步骤Y时)
Process finished with exit code 1

尝试过重新抛出基于原异常的新异常,但会产生多余回溯信息;修改原异常的__str__、__repr__或args属性也无法达到预期效果。实际场景为工作流管理器运行第三方代码步骤,需保留原异常完整信息,仅追加业务提示。

解决方案

通过自定义sys.excepthook钩子函数实现需求,该函数负责处理未捕获的异常,我们可以先调用默认逻辑输出原异常信息,再追加自定义提示:

import sys

def custom_excepthook(exc_type, exc_value, exc_traceback):
    # 输出原异常的完整回溯和错误信息
    sys.__excepthook__(exc_type, exc_value, exc_traceback)
    # 打印自定义业务提示
    print("自定义业务提示(如:该异常发生于工作流X执行步骤Y时)")

# 替换默认的异常处理钩子
sys.excepthook = custom_excepthook

# 执行第三方代码示例
l = [1,2,3]
index = 4
l[index]

该方案的优势:

  • 完全保留原异常的回溯信息和错误提示,无多余内容
  • 仅在原异常输出后追加自定义信息,符合需求
  • 无需修改原异常对象的任何属性,也不会重新抛出异常,避免引入新的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:40:31