Go语言编程:创建error的几种方式

2023年 7月 10日 23.7k 0

Go语言函数(或方法)是支持多个返回值的,因此在Go语言的编程哲学中,函数的返回值的最后一个通常都是error类型:

//标准os包下的函数
func Open(name string) (*File, error) {
 return OpenFile(name, O_RDONLY, 0)
}

error类型作为函数的最后一个返回值,其作用在于告诉调用者函数在执行过程是否发生错误,当返回的error值为nil,表示函数正常执行。

其实,error类型本质上是一个Go内置的接口,其定义如下:

type error interface {
 Error() string
}

从上面error的定义可以看到error接口只有一个Error()方法。

遵循着Go语言的编程哲学,当我们开发自己的函数时最好也把error作为函数的最后一个返回值。

即然要返回error类型,那么就必须先创建error类型,怎么创建呢?在这篇文章我们简单学习三种创建error类型的方式。

使用errors包

Go标准库errors包为了我们提供了一个最简单的error接口实现:

//errors包errors.go文件
type errorString struct {
 s string
}

func (e *errorString) Error() string {
 return e.s
}

从上面的定义可以看到errorString实现了error接口,且参数非常简单,只有一个文本信息,通过errors.New()函数可以创建一个errorString类型:

package school

import "errors"

type Student struct {
 ID    int
 Name  string
 Score int
}

func NewStudent(id int, name string, score int) (*Student, error) {
 if id 

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论