面试题答案
一键面试panic的作用:
panic
用于主动抛出一个运行时错误,它会导致当前函数立即停止执行,并开始展开调用栈,即调用栈中当前函数之上的所有函数都会被依次终止执行,直到遇到recover
或者程序终止。
recover的作用:
recover
用于在defer
函数中捕获panic
抛出的错误,使程序能够从panic
状态中恢复并继续执行,而不是直接崩溃。它只能在defer
函数内部使用。
示例代码:
package main
import (
"fmt"
)
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered from panic:", r)
}
}()
customError := fmt.Errorf("这是一个自定义错误")
panic(customError)
}