package main
import (
"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 = 10
var a2 = 0
return 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)
}
}```