其他分享
首页 > 其他分享> > 错误处理

错误处理

作者:互联网

处理错误是可靠代码的一个基本特性,在本节,你会在greeting模块中添加一小块代码 返回一个错误,然后在调用器中处理它.

1.在Ingreetings/greetings.go中增加下面的高亮代码.
  如果你不知道向谁打招呼,那么发送一个问候是没有必要的,如果名为空那么就给调用者返回一个错误,拷贝下列代码到greetings.go

package greetings

import (
    "errors"
    "fmt"
)

// Hello returns a greeting for the named person.
func Hello(name string) (string, error) {
    // If no name was given, return an error with a message.
    if name == "" {
        return "", errors.New("empty name")
    }

    // If a name was received, return a value that embeds the name
    // in a greeting message.
    message := fmt.Sprintf("Hi, %v. Welcome!", name)
    return message, nil
}

在这片代码中:

2.在hello/hello.go代码中,现在就要处理hello函数返回的错误和非错误了.

package main

import (
    "fmt"
    "log"

    "example.com/greetings"
)

func main() {
    // Set properties of the predefined Logger, including
    // the log entry prefix and a flag to disable printing
    // the time, source file, and line number.
    log.SetPrefix("greetings: ")
    log.SetFlags(0)

    // Request a greeting message.
    message, err := greetings.Hello("")
    // If an error was returned, print it to the console and
    // exit the program.
    if err != nil {
        log.Fatal(err)
    }

    // If no error was returned, print the returned message
    // to the console.
    fmt.Println(message)
}

在这片代码中:

3.在hello路径下,运行 run hello.go 

$ go run .
greetings: empty name
exit status 1

这是Go中常见的错误处理:将错误作为值返回,以便调用方可以检查它。

接下来,您将使用Go片段返回随机问候语。

标签:返回,log,错误,greetings,错误处理,message,name
来源: https://www.cnblogs.com/yaoshi641/p/15237207.html