Go 的 panic 和 recover 怎么用?
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
panic 用于抛出不可恢复的错误(数组越界、状态损坏等),程序默认崩溃并打印堆栈。recover 只能在 defer 函数中调用,捕获 panic 让程序继续执行:defer func() { if r := recover(); r != nil { log.Println(r) } }()。使用原则:业务错误用 error 返回,绝不拿 panic 做流程控制;recover 用在程序顶层兜底,避免单个请求崩溃拖垮整个进程,恢复后要记录日志。
回复
0 条回复