处理go中的多个错误

我是新手,发现错误处理非常冗长。我已经阅读了它的推理并且大部分都同意,但是有一些地方似乎有更多的代码来处理错误而不是实际执行的工作。这是一个(人为的)示例,我在其中输入“Hello world!” 进入 cat 并读取并打印输出。基本上每一行都有另外三个来处理错误,我什至没有真正处理任何事情。


package main


import "fmt"

import "io"

import "io/ioutil"

import "os/exec"



func main() {

    cmd := exec.Command("cat", "-")

    stdin, err := cmd.StdinPipe()

    if err != nil {

        return

    }

    stdout, err := cmd.StdoutPipe()

    if err != nil {

        return

    }

    err = cmd.Start()

    if err != nil {

        return

    }

    _, err = io.WriteString(stdin, "Hello world!")

    if err != nil {

        return

    }

    err = stdin.Close();

    if err != nil {

        return

    }

    output, err := ioutil.ReadAll(stdout)

    if err != nil {

        return

    }

    fmt.Println(string(output))

    return

}

有没有一种惯用的、干净的方法来处理这个问题?我只是觉得我错过了一些东西。


蝴蝶不菲
浏览 190回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go