# panic: http: 服务器已关闭

- **ID:** `go/httptest-server-close-panic`
- **领域:** go
- **类别:** runtime_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

关闭 httptest 测试服务器后，仍有并发请求在途，访问已关闭的监听器引发 panic。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 1.21 | active | — | — |

## 解决方案

1. **** (95% 成功率)
   ```
   使用 sync.WaitGroup 确保所有请求完成后关闭服务器
   ```
2. **** (85% 成功率)
   ```
   设置 server.Config.ReadTimeout 和 WriteTimeout，避免请求无限期挂起
   ```

## 无效尝试

- **** — httptest.Server 关闭后不可复用，连接池中的连接已失效，重试只会导致相同 panic (90% 失败率)
- **** — defer 在函数结束时才执行，但未等待所有 goroutine 结束，仍可能触发 panic (75% 失败率)
- **** — panic 是致命的，捕获后程序状态可能不一致，且掩盖了真正的并发问题 (60% 失败率)
