package mainimport ("errors""fmt"
)func main() {// panic会使得程序会终止//panicDemo1()//panicDemo2()//fmt.Println(panicDemo3())panicDemo5()fmt.Println("程序正常执行...")
}
panicDemo1函数测试
func panicDemo1() {panic("抛出一个异常,碰到了panic异常,程序会终止")
}
panic和recover结合使用这样可以保持程序正常执行
func panicDemo2() {// 使用recover捕获异常defer func() {if err := recover(); err != nil {fmt.Printf("捕获异常: %v\n", err)}}()panic("抛出一个异常,碰到了panic异常,程序会终止")
}
panicDemo3函数测试3
func panicDemo3() int {defer func() {if err := recover(); err != nil {fmt.Printf("捕获异常: %v\n", err) // 捕获错误}}()var a1 = 10var a2 = 0return a1 / a2
}
抛出一个异常
func panicDemo4(fileName string) error {if fileName == "xxx.png" {return nil} else {return errors.New("文件不存在")}
}
panicDemo5函数测试
func panicDemo5() {defer func() {if err := recover(); err != nil {fmt.Println("检测到文件名称错误", err)}}()err := panicDemo4("xx1x.jpg")if err != nil {panic(err)}
}```