捕获异常
func main() {
test()
t3()
fmt.Println("我是main")
}
//函数执行完或遇到异常就会跳到defer栈执行,recover函数捕获异常信息。
//加入错误捕获代码,程序不会奔溃,返回调用处可继续执行
func test() {
defer func() {
err := recover()
if err != nil {
fmt.Println("errsssssssssssss", err)
}
}()
a := 10
b := 0
res := a / b
fmt.Println("test执行完了", res)
}
//使用erros.New自定义异常信息返回
func t2(name string) (err error) {
if name == "aa" {
return nil
} else {
return errors.New("你的文件名错了")
}
}
//panic会打印异常信息,终止程序执行
func t3() {
err := t2("cc")
if err != nil {
panic(err)
}
fmt.Println("t3执行完了")
}