Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Pengendalian Ralat Go Boleh Diperbaiki untuk Kebolehbacaan dan Kesingkatan?
Pengendalian Ralat dalam Go
Pengendalian ralat dalam Go ialah aspek pengaturcaraan yang penting. Bahasa ini menggalakkan pemeriksaan dan pengendalian ralat langsung, yang boleh membawa kepada ralat pengendalian kod bertele-tele secara berulang.
Pertimbangkan contoh rekaan berikut yang menyalurkan "Hello world!" ke dalam cat dan membaca output:
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 }
Contoh ini mempunyai berbilang baris kod pengendalian ralat untuk setiap operasi.
Pendekatan idiomatik dalam Go ialah mengendalikan ralat secara terpusat. Sebagai contoh, kita boleh merangkum operasi paip dalam fungsi tersuai yang menguruskan ralat secara dalaman:
package main import ( "fmt" "io" "io/ioutil" "os" "os/exec" ) func piping(input string) (string, error) { cmd := exec.Command("cat", "-") stdin, err := cmd.StdinPipe() if err != nil { return "", err } stdout, err := cmd.StdoutPipe() if err != nil { return "", err } err = cmd.Start() if err != nil { return "", err } _, err = io.WriteString(stdin, input) if err != nil { return "", err } err = stdin.Close() if err != nil { return "", err } all, err := ioutil.ReadAll(stdout) output := string(all) if err != nil { return output, err } return output, nil } func main() { in := "Hello world!" fmt.Println(in) out, err := piping(in) if err != nil { fmt.Println(err) os.Exit(1) } fmt.Println(out) }
Pendekatan ini mengurangkan jumlah kod pengendalian ralat dalam fungsi utama, menjadikannya lebih ringkas dan lebih mudah dibaca .
Atas ialah kandungan terperinci Bagaimanakah Pengendalian Ralat Go Boleh Diperbaiki untuk Kebolehbacaan dan Kesingkatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!