Skip to content

错误处理

HTTP 状态码

状态码含义处理方式
400请求参数错误检查参数格式和值
401未授权检查认证信息
429请求过多实现重试机制,控制请求频率
500服务器错误记录错误日志,稍后重试
503服务不可用实现重试机制,设置合理超时

常见错误类型

1. 认证错误

提示

如果收到 401 Unauthorized 错误,请检查您的 API Key 是否正确配置。

python
try:
    # API 调用
    response = requests.post(url, headers=headers, json=data)
    response.raise_for_status()
except requests.exceptions.HTTPError as e:
    if e.response.status_code == 401:
        print("认证失败,请检查 API Key")
    else:
        print(f"HTTP 错误: {e}")

2. 速率限制错误

提示

如果收到 429 Too Many Requests 错误,请实现退避重试策略。

python
import time

def api_call_with_retry(url, headers, data, max_retries=3):
    retries = 0
    while retries < max_retries:
        try:
            response = requests.post(url, headers=headers, json=data)
            if response.status_code == 429:
                wait_time = (2 ** retries) * 0.5  # 指数退避
                print(f"请求过多,等待 {wait_time} 秒后重试")
                time.sleep(wait_time)
                retries += 1
                continue
            response.raise_for_status()
            return response
        except Exception as e:
            print(f"错误: {e}")
            retries += 1
            if retries >= max_retries:
                raise
    raise Exception("超过最大重试次数")

3. 服务器错误

提示

对于 5xx 系列错误,建议实现指数退避重试机制。

最佳实践

  1. 完善的错误日志记录
  2. 实现重试机制
  3. 优雅降级
  4. 监控和报警