Golang 如何创建自定义错误

Golang 如何创建自定义错误

Golang提供了多种方法来打印自定义错误。在本文中,我们将探讨其中两种方法。

第一种方法需要我们使用 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")
   }
   return math.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 函数内创建的错误。

输出

如果我们在上面的代码中运行命令 go run main.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)
   }
   return math.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)
}

输出

如果我们在上述代码中运行命令 go run main.go ,则会在终端中得到以下输出。

Area calculation wrong, the radius -10.00 is < zero

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程