【Go自学第八节】Go错误和异常捕获以及处理

文章详细介绍了Golang中处理异常的两种方式,包括使用`error`接口创建错误信息,如`fmt.Errorf`和`errors.New`函数,以及如何自定义错误类型。此外,还阐述了`panic`函数在程序遇到不可恢复错误时终止程序的用法,以及如何通过`defer`和`recover`来捕获和恢复`panic`,确保程序的健壮性。最后提到了异常处理的注意事项,例如多个`panic`时只有一个会被捕获。

程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常

golang中提供了两种处理异常的方式

  • 一种是程序发生异常时, 将异常信息反馈给使用者

  • 一种是程序发生异常时, 立刻退出终止程序继续运行

Go中提供了两种创建异常信息的方式。

方式一: 通过fmt包中的Errorf函数创建错误信息, 然后打印


package main
import "fmt"
func main() {
 // 1.创建错误信息
 var err error = fmt.Errorf("这里是错误信息")
 // 2.打印错误信息
 fmt.Println(err) // 这里是错误信息
}

方式二: 通过errors包中的New函数创建错误信息,然后打印

package main
import "fmt"
func main() {
 // 1.创建错误信息
 var err error = errors.New("这里是错误信息")
 // 2.打印错误信息
 fmt.Println(err) // 这里是错误信息
}

 我们可以看到,和两种方法本质上都是一个error的接口类型接收了错误信息,error接口的源码如下

package builtin
// 定义了一个名称叫做error的接口
// 接口中声明了一个叫做Error() 的方法
type error interface {
 Error() string
}

在errors包中定义了一个名称叫做做errorString的结构体, 利用这个结构体实现了error接口中指定的方法

并且在errors 包中还提供了一个New方法, 用于创建实现了error接口的结构体对象, 并且在创建时就会把指定的字符串传递给这个结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Weber77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值