首页 文章资讯内容详情

如何在 Golang 中创建自定义错误

2026-06-02 1 花语

Go为我们提供了可用于打印自定义错误的不同方法。我们将在本文中探讨两种这样的方法。

第一种方法要求我们使用会产生新错误的函数,我们甚至可以在其中传递我们选择的字符串作为参数。error.New()

示例1

考虑下面显示的代码。

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

在上面的代码中,我们试图找到圆的面积,但是我们将半径作为负数传递,这将返回我们在areaOfCircle函数中创建的错误。

输出结果

如果我们在上面的代码上运行gorunmain.go命令,我们将在终端中得到以下输出。

Area calculation wrong, the radius is < zero

示例2

另一种方法是利用它的帮助,我们也可以传递格式化的值。fmt.Errorf()

考虑下面显示的代码。

package main import ( "fmt" "math" ) func areaOfCircle(radius float64) (float64, error) { if radius < 0 { return 0, fmt.Errorf("Area calculation wrong, the radius %0.2f is < zero", radius) } returnmath.Pi* radius * radius, nil } func main() { radius := -10.0 area, err := areaOfCircle(radius) if err != nil { fmt.Println(err) return } fmt.Printf("Area of circle %0.2f", area) }输出结果

如果我们在上面的代码上运行gorunmain.go命令,我们将在终端中得到以下输出。

Area calculation wrong, the radius -10.00 is < zero