Skip to main content
正在扩展错误处理文档。下面显示了核心模式。

概述

Shannon Python SDK 提供全面的错误处理以帮助您构建强大的应用程序。所有 SDK 异常都继承自 ShannonError

异常层次结构

预算和任务失败处理:预算超出和任务失败不是异常。失败请检查 status.status。令牌用量与成本合计请通过 list_tasks() 读取任务列表中的 total_token_usage

基本错误处理

Try-Catch 模式

特定错误类型

连接错误

处理网络和连接问题:

成本与失败检查

通过状态判断失败,并使用 list_tasks() 获取用量与成本合计:

超时错误

处理长时间运行的操作:

速率限制

优雅地处理 API 速率限制:
导入说明:from shannon import ConnectionError 指的是 SDK 的异常类型(不是 Python 内置的 ConnectionError)。速率限制请使用 RateLimitError,网络问题请使用 ConnectionError。退避与断路器等高级模式属于参考实现,请根据生产环境验证与调整。

验证错误

处理无效参数:

任务失败处理

处理任务执行失败:

记录错误

实现全面的错误日志:

断路器模式

为弹性实现断路器:

最佳实践

  1. 始终在泛型异常之前捕获特定异常
  2. 使用指数退避实现重试逻辑
  3. 记录错误以供调试和监控
  4. 为关键操作提供回退选项
  5. 设置合理的超时以避免挂起
  6. 在提交前验证输入
  7. 对外部依赖项使用断路器

后续步骤

示例

查看错误处理的实际应用

异步用法

异步错误模式

完整示例:带重试逻辑

运行方法:
何时使用重试:
  • 网络不稳定
  • 临时性服务问题
  • 对可靠性有要求的生产系统
不建议重试:
  • 超时(任务本身过于复杂/耗时)
  • API 错误(参数无效等)
  • 认证失败