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

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

自定义错误是用户可以定义的错误。例如,如果某人编写一个用于除两个数字的函数,该函数将在多个地方使用,用户可以创建一个自定义错误,以便在遇到除以零时可以设置它,因为它可能会长期致命。

在Golang中创建自定义错误最简单的方法是使用Golang的errors模块中存在的New()函数。在实际创建自己的错误之前,让我们来看一下它在errors包中是如何实现的。

package errors

// New返回一个errorString,
// 其中输入文本作为其值。
func New(text string) error {
    return &errorString;{text}
}

// errorString是一个微不足道的
// error的实现。
type errorString struct {
    s string
}

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

因此,New()函数的基本作用是创建一个带有程序员编写的自定义消息的错误。例如,假设我们希望在给定正方形边的输入的程序的输入中输入负值时显示错误。

package main

// errors包
// 包含New功能
import (
    "errors"
    "fmt"
)

func main() {
    side := -2.0
    if side < 0.0 {

        //如果满足错误条件,则控制进入此处
        fmt.Println(errors.New("Negative value entered!"))
        return
    }
    fmt.Printf("Area=%f", side*side)

}

输出:

Negative value entered!

这是因为我们输入了长度为-2的边,这是不可能的,因此错误被抛出。现在让我们尝试一个类似的程序,但这次让我们把错误生成放在一个单独的函数中。

package main

import (
    "errors"
    "fmt"
)

func findAreaSquare(side float64) (error, float64) {
    if side < 0.0 {

        //返回错误
        //以及计算出的面积的函数
        return errors.New("Negative value entered!"), 0
    }
    return nil, side * side
}
func main() {
    side := -2.0
    err, area := findAreaSquare(side)
    if err != nil {
        fmt.Printf("%s", err)
        return
    }
    fmt.Printf("Area=%f", area)

}

输出:

Negative value entered!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程