阅读 284

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

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

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

示例 1

考虑下面显示的代码。


package mainimport (
   "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函数中创建的错误。

输出结果

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


Area calculation wrong, the radius is < zero


示例 2

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

考虑下面显示的代码。


package mainimport (
   "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)
}

输出结果


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


Area calculation wrong, the radius -10.00 is < zero


文章分类
百科问答
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐