# 错误处理指南

本文档提供个股分析过程中常见错误的具体示例和解决方案。

---

## 1. 标的不明确

**场景**：用户未提供股票代码或公司名称

**处理方式**：
- 先要求用户补充股票代码或公司全称
- 使用 `search` 辅助确认后再继续

**示例对话**：

```
用户: 帮我分析一下茅台
Agent: 已找到匹配股票：贵州茅台(600519)，确认分析此标的吗？
```

---

## 2. Token 认证失败（401）

**错误示例**：

```
Error: Authentication failed (401)
```

**原因**：
- Token 未配置
- Token 已过期
- Token 格式错误

**解决方案**：

```bash
# Step 1: 检查当前配置
npx daxiapi-cli@latest config get token

# Step 2: 如返回空或失效，重新配置
npx daxiapi-cli@latest config set token YOUR_NEW_TOKEN

# 或使用环境变量
export DAXIAPI_TOKEN=YOUR_NEW_TOKEN

# Step 3: 验证配置成功
npx daxiapi-cli@latest stock info 600519
```

---

## 3. 请求频率超限（429）

**错误示例**：

```
Error: Rate limit exceeded (429)
```

**原因**：
- 短时间内请求次数超过限制
- 在循环中重复调用同一接口

**解决方案**：

1. 等待 30-60 秒后重试
2. 避免在短时间内的重复请求
3. 优化数据获取策略，批量获取而非逐个请求

**最佳实践**：

```bash
# 错误：短时间内多次请求
for code in 600519 000858 600036; do
  npx daxiapi-cli@latest stock info $code
done

# 正确：适当间隔或按需获取
npx daxiapi-cli@latest stock info 600519
# 完成分析后再请求下一个
```

---

## 4. 数据缺失/接口异常

**错误示例**：

```
Error: No data available for code: XXXXXX
Error: Invalid code format
```

**原因**：
- 股票代码不存在
- 股票代码格式错误
- 数据源暂时不可用

**解决方案**：

1. 确认股票代码格式正确（如 600519、000858）
2. 使用 `search` 命令验证代码
3. 明确缺失字段与影响范围
4. 用户确认后执行"降级分析"

**降级分析示例**：

```markdown
由于财务数据暂时无法获取，本次分析将：
- 技术面分析：完整输出
- 基本面分析：仅基于行情数据做方向性判断
- 综合评级：降级为"谨慎推荐"或"中性"
```

---

## 5. 宏观/新闻信息无法验证

**场景**：外部新闻或政策信息无法通过稳定 API 获取

**处理方式**：
- 明确写出"该部分证据不足"
- 不将其作为核心结论唯一依据
- 引导用户提供具体信息来源

**示例输出**：

```markdown
### 行业政策分析

**数据状态**：外部政策信息暂无法验证

**处理方式**：
- 建议用户通过巨潮资讯、官方公告确认
- 本分析暂不将政策因素纳入核心评级依据
```

---

## 6. ST 股票特殊处理

**场景**：分析对象为 ST/\*ST 股票

**必须执行**：
- 触发 Step 4 ST 增强分析流程
- 输出 ST 增强模块

**错误示例**：ST 股票未做增强框架分析

**检查方式**：
- 股票名称含 ST/\*ST 标识
- 用户明确提及退市/重整/摘帽

---

## 错误处理流程图

```
遇到错误
    │
    ├─→ 401 认证失败 → 检查 Token → 重新配置 → 重试
    │
    ├─→ 429 频率超限 → 等待 30-60 秒 → 重试
    │
    ├─→ 数据缺失 → 明确缺失范围 → 用户确认 → 降级分析
    │
    └─→ 标的不明 → 要求补充 → search 确认 → 继续分析
```

---

## 总结

| 错误类型 | 优先级 | 处理方式 |
|---------|-------|---------|
| Token 认证失败 | P0 | 立即重新配置 |
| 请求频率超限 | P1 | 等待后重试 |
| 数据缺失 | P1 | 降级分析 |
| 标的不明 | P0 | 用户确认 |
| 信息无法验证 | P2 | 明确标注 |
