Menyahpepijat "status keluar 1" Ralat dalam eksekutif Golang.Arahan
Apabila menjalankan exec.Command dalam Golang, menghadapi "status keluar 1 "Ralat boleh mengecewakan tanpa maklumat terperinci. Nasib baik, terdapat penyelesaian untuk mendedahkan punca asas.
Penyelesaian:
Gunakan sifat Stderr bagi objek Perintah. Sifat ini menangkap output ralat standard yang dihasilkan oleh arahan. Berikut ialah versi ubah suai bagi coretan kod:
import ( "bytes" "fmt" "os/exec" ) func main() { cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\") var out bytes.Buffer var stderr bytes.Buffer cmd.Stdout = &out cmd.Stderr = &stderr err := cmd.Run() if err != nil { fmt.Println(fmt.Sprint(err) + ": " + stderr.String()) return } fmt.Println("Result: " + out.String()) }
Penjelasan:
Dengan memberikan sifat Stderr kepada penimbal (stderr), sebarang mesej ralat yang dihasilkan oleh arahan akan ditangkap dan dilampirkan pada penimbal. Apabila arahan keluar dengan kod keluar bukan sifar, ralat dan output stderr akan dicetak, memberikan lebih banyak konteks untuk penyahpepijatan.
Nota:
Sesetengah arahan mungkin cetak ralat ke stdout dan bukannya stderr, atau kembalikan kod ralat 0 dengan mesej dalam stderr. Oleh itu, tingkah laku setiap arahan perlu diambil kira semasa menyesuaikan penyelesaian ini.
Atas ialah kandungan terperinci Bagaimana untuk Menyahpepijat 'keluar status 1' Ralat dalam exec.Command Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!