go
runtime_error
ai_generated
true
panic:运行时错误:无效内存地址或 nil 指针解引用(在 goroutine 中)
panic: runtime error: invalid memory address or nil pointer dereference (in goroutine)
ID: go/panic-runtime-error-invalid-memory-address-nil-pointer-in-goroutine
80%修复率
90%置信度
0证据数
2024-09-05首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 1.0+ | active | — | — | — |
根因分析
某个 goroutine 解引用 nil 指针;由于运行在后台 goroutine 中,panic 会导致整个程序崩溃。
English
A goroutine dereferences a nil pointer; because it runs in a background goroutine, the panic crashes the whole program.
解决方案
-
90% 成功率
go func() { defer func() { if r := recover(); r != nil { log.Printf("panic: %v", r) } }() doWork() }() -
93% 成功率
if p == nil { return fmt.Errorf("nil receiver") }
无效尝试
常见但无效的做法:
-
95% 失败
Panic happens in a child goroutine; recover in main never sees it.
-
90% 失败
Any unhandled panic in a goroutine terminates the process.