面试真题

Go · 中等 · 闪送

recover 怎么使用的,defer 相比普通的在函数最后执行操作,其优势是什么?

中等 Go 🎤 闪送
参考答案
结论:recover()用于捕获panic,必须在defer函数中直接调用才有效;defer优势在于无论函数正常返回还是发生panic,都能保证延迟函数执行,适合资源清理。核心要点:1. recover仅在defer func内调用能拦截panic,返回interface{};2. defer按后进先出执行,参数在defer时求值;3. 相比函数末尾普通代码,defer在panic时依然运行,避免资源泄漏;示例:defer func(){ if r:=recover(); r!=nil { log.Println(r) } }() 可恢复异常并继续执行。
题目整理自公开面经,答案由校招宝自研生成,仅供参考