如何在 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

更新於: 2022 年 4 月 7 日

627 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始
廣告