網頁

2021/6/12

Golang 錯誤的產生、回傳、處理基本 error create, return and error handling basic

Go語言的錯誤型態為內建的error interface。邏輯錯誤時可使用內建的errors package建立error


參考「Golang 建立Go module」修改greeting.goHello()函式如下。
若傳入的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


沒有留言:

張貼留言