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)
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值