Go語言的錯誤型態為內建的error
interface。邏輯錯誤時可使用內建的errors
package建立error
。
參考「Golang 建立Go module」修改greeting.go
的Hello()
函式如下。
若傳入的name
為空字串時以errors.New()
函式產生error
並以第二個參數回傳。
name
不為空字串則返回訊息及nil
。
greeting.go
package greetings
import "errors"
func Hello(name string) (string ,error) { // 回傳第一個參數為string,第二個為error
if name == "" {
err := errors.New("empty name") // 建立error及夾帶錯誤訊息
return "", err // 第二個參數回傳error
}
message := "Hello " + name
return message, nil // 第二個error參數返回nil
}
在demo.go
呼叫greetings.Hello()
時對返回的錯誤進行處理。這邊使用標準函式庫的log.Fatal()
函式印出錯誤訊息並停止程式執行。
demo.go
package main
import (
"fmt"
"log"
"abc.com/greetings"
)
func main() {
message, err := greetings.Hello("") // 傳入空字串參數
if err != nil {
log.Fatal(err) // 印出error訊息並停止程式
}
fmt.Println(message)
}
執行印出結果如下。
2021/06/13 13:57:09 empty name
exit status 1
沒有留言:
張貼留言