GO error处理

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()
}

  

posted @ 2021-05-12 19:48  不吃肉的羊  阅读(64)  评论(0编辑  收藏  举报