您的位置:首页 >Golang panic和recover的区别解析
发布于2025-10-10 阅读(0)
扫一扫,手机访问
panic用于触发运行时恐慌,终止函数执行并向上蔓延;recover则在defer中捕获panic,阻止程序崩溃。两者配合实现异常控制,类似throw/catch,但应仅用于严重错误,普通错误推荐error处理。

panic 和 recover 是 Go 语言中用于处理严重错误的机制,它们的作用完全不同,通常配合使用来控制程序在发生异常时的行为。
func badFunc() {
panic("something went wrong")
fmt.Println("never printed")
}
func safeCall() {
defer func() {
if r := recover(); r != nil {
fmt.Println("recovered:", r)
}
}()
panic("oh no!")
fmt.Println("this won't run")
}
上面代码不会崩溃,而是打印 recovered: oh no! 并继续执行后续逻辑。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9