错误处理
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 系列错误,建议实现指数退避重试机制。
最佳实践
- 完善的错误日志记录
- 实现重试机制
- 优雅降级
- 监控和报警