Go 专栏|错误处理:defer,panic 和 recover
package main
import "fmt"
func main() {
// 使用defer, panic, recover处理错误
defer func() {
if r := recover(); r != nil {
fmt.Printf("恢复了一个错误: %v\n", r)
}
}()
f()
fmt.Println("程序继续执行...")
}
func f() {
panic("我是一个错误")
}
这段代码首先定义了一个main
函数,在其中使用了一个匿名函数配合defer
关键字。这样,匿名函数会在main
函数退出前执行。匿名函数内部使用recover
函数来捕获并处理panic
抛出的错误。如果有错误被恢复,程序会打印出错误信息。f
函数中的panic
用于触发错误,并在main
函数中通过defer
和recover
进行了错误处理。如果没有错误发生,则"程序继续执行..."会被打印出来。这是Go语言中错误处理的一个基本模式。
评论已关闭