J'appelle la méthode avec une valeur de type d'erreur (foo () dans l'exemple de code). Je m'en fiche de ce résultat. Quelle est la bonne façon d'écrire dans le style de code? Errcheck linter me fait vérifier cette erreur.
//for example, same method may be called from imported entity
func foo() error {
if err := someFunction(); err != nil {
return err
}
return nil
}
func process() {
//linter doesn't like this
foo()
//this way leads to unused variable error
err := foo()
//is this clean way?
_ = foo()
return
}
3 Réponses :
Voici la manière idiomatique:
err := foo()
if err != nil {
// handle your error here
}
Vous ne devez pas omettre une erreur possible. Enregistrez-le ou imprimez-le sur stdout, mais ne l'ignorez pas.
Oui, l'assigner à une variable générique serait un bon moyen d'ignorer l'erreur. Mais toute la pratique (d'ignorer les erreurs) est fortement déconseillée. Voici ce que "Effective Go" a à dire à ce sujet:
Parfois, vous verrez du code qui supprime la valeur d'erreur afin d'ignorer l'erreur; c'est une pratique terrible. Vérifiez toujours les retours d'erreur; ils sont fournis pour une raison.
// Bad! This code will crash if path does not exist. fi, _ := os.Stat(path) if fi.IsDir() { fmt.Printf("%s is a directory\n", path) }