So beheben Sie den Fehler „Exit Status 1“ in Golangs exec.Command
Bei der Verwendung von exec.Command in Golang kann es zu einem Problem kommen Unspezifischer Fehler „Exit-Status 1“, der die Debugging-Bemühungen behindert. Um detailliertere Informationen zu erhalten:
Greifen Sie auf die Stderr-Ausgabe des Befehls zu
Das Command-Objekt enthält eine Stderr-Eigenschaft, die Fehlermeldungen des ausgeführten Befehls erfasst. Ändern Sie Ihren Code, um die stderr-Ausgabe in eine Variable umzuleiten:
var stderr bytes.Buffer cmd.Stderr = &stderr err := cmd.Run() if err != nil { fmt.Println(fmt.Sprint(err) + ": " + stderr.String()) return }
Wenn Sie diesen erweiterten Code ausführen, erhalten Sie eine umfassendere Fehlermeldung, z. B.:
exit status 1: find: -exec: no terminating ";" or "+"
Dadurch wird klargestellt, dass der Fehler auf einen Fehler zurückzuführen ist von einem ungültigen Befehl.
Behandlung von nicht standardmäßigen Fehlern Verhalten
Beachten Sie, dass einige Befehle vom erwarteten Verhalten abweichen können, indem sie Fehler an stderr ausgeben und einen Exit-Code ungleich Null zurückgeben. Bestimmte Befehle, wie ffmpeg, geben Fehler möglicherweise an stderr aus, geben jedoch den Exit-Code 0 zurück. Darüber hinaus geben einige Befehle Fehler möglicherweise an stdout statt an stderr aus.
Um diese Variationen zu berücksichtigen, müssen Sie möglicherweise den Code anpassen oben, um die von Ihnen verwendeten spezifischen Befehle und das erwartete Fehlerbehandlungsmuster zu berücksichtigen.
Das obige ist der detaillierte Inhalt vonWarum gibt mein Go-Code ständig „Exit-Status 1' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!