golang中创建错误的方法

互联网 19-12-7

在本教程中,我们会学习如何创建我们自己的自定义错误,并在我们创建的函数和包中使用它。我们会使用与标准库中相同的技术,来提供自定义错误的更多细节信息。

使用 New 函数创建自定义错误

创建自定义错误最简单的方法是使用 errors 包中的 New 函数。

在使用 New 函数 创建自定义错误之前,我们先来看看 New 是如何实现的。如下所示,是 errors 包 中的 New 函数的实现。

// Package errors implements functions to manipulate errors. package errors // New returns an error that formats as the given text. func New(text string) error {     return &errorString{text} } // errorString is a trivial implementation of error. type errorString struct {     s string } func (e *errorString) Error() string {     return e.s }

New 函数的实现很简单。errorString 是一个结构体类型,只有一个字符串字段 s。第 14 行使用了 errorString 指针接受者(Pointer Receiver),来实现 error 接口的 Error() string 方法。

第 5 行的 New 函数有一个字符串参数,通过这个参数创建了 errorString 类型的变量,并返回了它的地址。于是它就创建并返回了一个新的错误。

现在我们已经知道了 New 函数是如何工作的,我们开始在程序里使用 New 来创建自定义错误吧。

我们将创建一个计算圆半径的简单程序,如果半径为负,它会返回一个错误。

package main import (       "errors"     "fmt"     "math" ) func circleArea(radius float64) (float64, error) {       if radius < 0 {         return 0, errors.New("Area calculation failed, radius is less than zero")     }     return math.Pi * radius * radius, nil } func main() {       radius := -20.0     area, err := circleArea(radius)     if err != nil {         fmt.Println(err)         return     }     fmt.Printf("Area of circle %0.2f", area) }

在 glayground 上运行

在上面的程序中,我们检查半径是否小于零(第 10 行)。如果半径小于零,我们会返回等于 0 的面积,以及相应的错误信息。如果半径大于零,则会计算出面积,并返回值为 nil 的错误(第 13 行)。

在 main 函数里,我们在第 19 行检查错误是否等于 nil。如果不是 nil,我们会打印出错误并返回,否则我们会打印出圆的面积。

在我们的程序中,半径小于零,因此打印出:

推荐:go语言教程

以上就是golang中创建错误的方法的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: golang
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:golang与java语法上的区别

相关资讯