go
runtime_error
ai_generated
true
panic: http: panic serving 127.0.0.1:8080: runtime error: index out of range
ID: go/http-handler-panic-recovery
80%Fix Rate
86%Confidence
0Evidence
2024-06-01First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 1.21 | active | — | — | — |
Root Cause
HTTP handler 中发生未捕获的 panic,导致服务器崩溃,默认 net/http 会恢复但记录日志。
generic中文
处理请求时访问无效索引,未使用 recover 捕获,导致服务中断。
Workarounds
-
95% success
在 handler 内部使用 defer recover() 并记录日志
-
90% success
使用中间件统一处理 panic,返回 500 错误
Dead Ends
Common approaches that don't work:
-
70% fail
连接会中断,且可能泄漏资源
-
90% fail
recover 必须在 panic 发生的 goroutine 中调用,handler 外无效