Comment dépanner l'erreur "Exit Status 1" dans exec.Command de Golang
Lors de l'utilisation de exec.Command dans Golang, vous pouvez rencontrer un erreur non spécifique "état de sortie 1" qui entrave les efforts de débogage. Pour obtenir des informations plus détaillées :
Accédez à la sortie Stderr de la commande
L'objet Command inclut une propriété Stderr qui capture les messages d'erreur de la commande exécutée. Modifiez votre code pour rediriger la sortie stderr vers une variable :
var stderr bytes.Buffer cmd.Stderr = &stderr err := cmd.Run() if err != nil { fmt.Println(fmt.Sprint(err) + ": " + stderr.String()) return }
L'exécution de ce code amélioré fournira un message d'erreur plus complet, tel que :
exit status 1: find: -exec: no terminating ";" or "+"
Cela précise que l'erreur provient à partir d'une commande invalide.
Gestion du comportement d'erreur non standard
Notez que certaines commandes peuvent s'écarter du comportement attendu des erreurs d'impression sur stderr et renvoyer un résultat différent de zéro code de sortie. Certaines commandes, comme ffmpeg, peuvent imprimer des erreurs sur stderr mais renvoyer un code de sortie de 0. De plus, certaines commandes peuvent imprimer des erreurs sur stdout au lieu de stderr.
Pour prendre en compte ces variations, vous devrez peut-être ajuster le code. ci-dessus pour tenir compte des commandes spécifiques que vous utilisez et du modèle de gestion des erreurs attendu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!