Sono nuovo per andare e trovare la gestione degli errori per essere estremamente prolisso. Ho letto il ragionamento e per lo più sono d'accordo, ma ci sono alcuni punti in cui sembra che ci sia più codice per gestire gli errori di quanto non faccia effettivamente il lavoro. Ecco un esempio (forzato), in cui metto "Hello world!" in cat e leggi e stampa l'output. Fondamentalmente ogni riga ha altri tre per gestire l'errore, e io non sto nemmeno gestendo nulla.Gestione errori multipli in go
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
}
Esiste un modo idiomatico e pulito per gestirlo? Mi sento come se mi mancasse qualcosa.
http://stackoverflow.com/questions/15397419/go-handling-multiple-errors-elegantly?rq=1 –