Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyahpepijat 'keluar status 1' Ralat dalam exec.Command Golang?

Bagaimana untuk Menyahpepijat 'keluar status 1' Ralat dalam exec.Command Golang?

Linda Hamilton
Lepaskan: 2024-12-04 06:40:15
asal
707 orang telah melayarinya

How to Debug

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())
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan