阅读 190

Golang学习笔记(十六):错误机制

原创作者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。

什么是error类型

在Go语言中,除基本数据类型(int,float,boolean,string)、复合型(struct,array)和引用类型(slice,map,指针,channel,function)外,还有一种内置的数据类型:error。

error是Go语言的内置类型,因此就像int等类型一样,不需要引用任何包,就可以定义error类型的变量。

var err error //定义一个error类型的变量err
复制代码

实际上,error类型是一个接口类型,在Go语言中的定义如下,

type error interface {
   Error() string
}
复制代码

error的定义在builtin包,注意,这个包不需要使用import语句引入。

如果你学过Go语言有关接口的知识便知道,任意的类型,只要在这种类型中有定义与接口相同的方法,便是实现了这个接口,因此Go语言error类型的定义,为Go编程提供了一套有关错误处理的机制。

错误处理机制

有别于其他编程语言,在Go语言中,并没有try...catch这种异常处理机制,虽然panic()和recover()这两个函数配合使用可以达到类似try...catch的异常捕捉效果,但还是有不同之处。

在Go语言的标准库,常常可见到函数中有返回error的函数定义,这便是Go语言的错误处理机制,由开发人员显性返回错误,再由上层调用者决定如何处理。

package os

func Create(name string) (*File, error)
func Open(name string) (*File, error)
复制代码

你的关注,是我写作路上最大的鼓励!

文章分类
后端
文章标签