我是新來的,發現錯誤處理是非常詳細的。我已經閱讀了它的推理,並且大部分都認同,但是有幾個地方似乎有更多的代碼來處理錯誤,而不是實際執行的工作。這是一個(人爲的)例子,我在這裏輸入「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