Maison > Article > développement back-end > Comment gérer les erreurs lors du report de fonctions avec des valeurs de retour dans Go ?
Gestion des erreurs lors du report de fonctions avec des valeurs de retour
Le linter golang/errcheck avertit lors du report d'une fonction qui renvoie une valeur sans vérifier l'erreur . Pour résoudre ce problème, il faut stocker la valeur de retour, ce qui nécessite de différer une autre fonction qui appelle celle d'origine.
Une approche consiste à utiliser une fonction anonyme, comme illustré ci-dessous :
<code class="go">defer func() { if err := r.Body.Close(); err != nil { fmt.Println("Error when closing:", err) } }()</code>
Alternativement, une fonction d'assistance peut être définie :
<code class="go">func Check(f func() error) { if err := f(); err != nil { fmt.Println("Received error:", err) } }</code>
qui peut être utilisée comme suit :
<code class="go">defer Check(r.Body.Close)</code>
Pour plusieurs appels de fonction différés, une fonction d'assistance modifiée acceptant plusieurs fonctions peut être créée :
<code class="go">func Checks(fs ...func() error) { for i := len(fs) - 1; i >= 0; i-- { if err := fs[i](); err != nil { fmt.Println("Received error:", err) } } }</code>
De plus, la fonction Checks() utilise une boucle descendante pour refléter l'ordre d'exécution premier entré, dernier sorti des fonctions différées.
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!