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

https://juejin.im/post/5c90e2c6f265da60fb3be744

什么是error类型

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

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

  1. var err error //定义一个error类型的变量err

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

  1. type error interface {
  2. Error() string
  3. }

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

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

错误处理机制

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

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

  1. package os
  2. func Create(name string) (*File, error)
  3. func Open(name string) (*File, error)
ft_authoradmin  ft_create_time2019-08-03 17:09
 ft_update_time2019-08-03 17:09