Go 的 panic 和 recover 怎么用?
panic 用于抛出不可恢复的错误(数组越界、状态损坏等),程序默认崩溃并打印堆栈。recover 只能在 defer 函数中调用,捕获 panic 让程序继续执行:defer func() { if r := recover(); r != nil { log.Println(r) } }()。使用原则:业务错误用 error 返回,绝不拿 panic 做流程控制;recover 用在程序顶层兜底,避免单个请求崩溃拖垮整个进程,恢复后要记录日志。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。