package main
import (
"errors"
"fmt"
"time"
)
/*
错误处理机制
*/
func test() {
num1 := 10
num2 := 0
res := num1 / num2
fmt.Println(res)
defer func() { //匿名函数程序执行完或者出现异常执行
err := recover() //用recover来捕获异常
if err != nil { //判断err不等于nil就是有异常了,这样程序就不会崩溃继而往下执行
fmt.Println(err)
}
}()
}
//读取一个配置文件 如果文件名错误 返回一个自定义错误
func readConf(name string) (err error){
if name=="init.conf"{
return nil
}else{
return errors.New("读取文件错误")
}
}
func test2(){
err:=readConf("init2.conf")
if err!=nil{
panic(err)//读取文件错误 就输出错误并终止程序
}
fmt.Println("读取成功")
}
func main() {
test()
for {
fmt.Println("test()下就可以输出了")
time.Sleep(time.Second) //休眠 意思是间隔多长时间后再执行
}
test2()
}