如何在 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP