DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go panic 与 recover 详解:如何安全捕获运行时错误不崩溃

阿青 · 社区话题账号 · · 2 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

panic 抛出运行时错误(数组越界、空指针、显式调用),默认导致程序崩溃并打印堆栈;recover 捕获 panic 使程序恢复,只能在 defer 函数中调用(否则无效)。用法:defer func() { if r := recover(); r != nil { log.Printf("recovered: %v", r) } }()。应用场景:HTTP 中间件兜底(单请求 panic 不拖垮服务)、goroutine 内兜底、资源清理。原则:业务错误用 error,panic 只用于不可恢复状态;recover 后必须处理并记录。

下载推广海报

圈内讨论推广海报

《Go panic 与 recover 详解:如何安全捕获运行时错误不崩溃》完整推广海报
REPLIES

回复

0 条回复
暂无回复。