我是新来的,发现错误处理是非常详细的。我已经阅读了它的推理,并且大部分都认同,但是有几个地方似乎有更多的代码来处理错误,而不是实际执行的工作。这是一个(人为的)例子,我在这里输入“Hello world!”读入并读取并打印输出。基本上每条线都有三个来处理错误,而我甚至没有处理任何事情。在处理多个错误
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
}
有没有一种习惯的,干净的方式来处理这个问题?我只是觉得我错过了一些东西。
http://stackoverflow.com/questions/15397419/go-handling-multiple-errors-elegantly?rq=1 – 2013-04-20 23:45:18