程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常
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接口的结构体对象, 并且在创建时就会把指定的字符串传递给这个结

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

被折叠的 条评论
为什么被折叠?



