go语言中错误处理方式

本文介绍了Go语言中的错误处理机制,包括使用defer、panic和recover来捕获并处理异常。示例展示了如何在发生除零错误时,通过defer和recover避免程序崩溃并打印错误信息。此外,还讲解了自定义错误类型,通过panic抛出自定义错误并终止程序的执行。
摘要由CSDN通过智能技术生成

go语言中错误处理方式:

defer,panic,recover。

go中可以抛出一个panic异常,然后在defer中,通过recover捕获这个异常,然后进行处理。

示例:err1.go代码

package errlab

import "fmt"

//defer recover 来处理错误

func Testerr(){
	//使用defer+recover来捕获和处理异常
	//匿名函数
	defer func(){
		err:=recover()  //recover()是内置函数,可以捕获异常
		if err!=nil{   //捕获到错误
			fmt.Println("err=",err)
		}

	}()

	num1:=10
	num2:=0
	res:=num1/num2
	fmt.Println("res=",res)   //err= runtime error: integer divide by zero
}

main主函数

func main() {
	//错误err的练习
	errlab.Testerr()
	fmt.Println("错误后是否会输出@!!")




}

输出结果:

err= runtime error: integer divide by zero
错误后是否会输出@!!

上面的异常,没有影响主程序的代码,主程序继续向下执行了

“”“错误后是否会输出@!”内容---》说明主程序继续执行了。

 


 自定义错误类型:


func Dingyierr(){
	callconfig()
	fmt.Println("callconfig的函数以及下面的代码!")

}


//函数去读取配置文件config。int的信息
//如果文件名不正确就是返回错误
func readconfig(name string )(err error){
	if name=="config.ini"{
		return nil
	}else {
		return errors.New("读取文件错误...")   //自定义错误内容事项
	}
}


//调用上面的函数readconfig()
func callconfig(){
	err:=readconfig("config2.ini")
	if err!=nil{
		//如果读取文件发送错误,就是输出这个错误,并终止程序
		panic(err)   //panic后,就是终止了程序继续执行了!!!
	}
	fmt.Println("callconfig继续执行。。。。")
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值