📜  如何在 Golang 中使用新函数创建自定义错误?(1)

📅  最后修改于: 2023-12-03 14:52:18.174000             🧑  作者: Mango

如何在 Golang 中使用新函数创建自定义错误?

在 Golang 中创建自定义错误非常方便,只需要使用 errors.New() 函数即可。

创建自定义错误的基本语法
package main

import (
    "errors"
    "fmt"
)

func main() {
    err := errors.New("这是一个自定义错误")
    fmt.Println(err)
}

以上代码使用 errors.New() 函数创建了一个新的自定义错误,使用 fmt.Println() 函数输出错误信息,输出结果如下:

这是一个自定义错误
创建自定义错误并添加更多信息

除了简单地创建自定义错误外,您还可以为错误添加更多的信息以提高错误的可读性和完整性。 

下面是一个例子:

package main

import (
    "errors"
    "fmt"
)

func main() {
    err := errors.New("这是一个自定义错误")
    err = fmt.Errorf("发生错误,错误信息:%s", err.Error())
    fmt.Println(err)
}

在上面的代码中,我们首先使用 errors.New() 函数创建了一个新的自定义错误,然后使用 fmt.Errorf() 函数为错误添加更多的信息。最后,我们使用 fmt.Println() 函数输出错误信息。输出结果如下:

发生错误,错误信息:这是一个自定义错误
使用 struct 创建自定义错误

除了使用 errors.New() 函数创建自定义错误外,您还可以使用 struct 来创建一个自定义的错误类型。 

下面是一个例子:

package main

import (
    "fmt"
)

type myError struct {
    message string
}

func (e *myError) Error() string {
    return e.message
}

func main() {
    err := &myError{"这是一个自定义错误类型"}
    fmt.Println(err.Error())
}

在上面的代码中,我们创建了一个名为 myError 的 struct 来表示自定义错误。该 struct 包含一个 message 字段和一个实现了 Error() 方法的指针接收器。

Error() 方法返回由 message 字段设置的自定义错误信息。在 main 函数中,我们使用 &myError{"这是一个自定义错误类型"} 创建了一个新的自定义错误实例,然后使用 fmt.Println() 函数输出错误信息。输出结果如下:

这是一个自定义错误类型
总结

在 Golang 中,创建自定义错误非常方便,您可以使用 errors.New() 函数或 struct 来创建自定义错误类型。如果需要更详细的错误信息,我们可以使用 fmt.Errorf() 函数为错误添加更多的信息。