Le langage Go ne fournit pas de méthode de gestion des exceptions try...catch comme le langage Java et C#, mais le lance couche par couche via la valeur de retour de la fonction.
La fonction de gestion des erreurs fournie par le package standard Go :
l'erreur est une interface :
type error interface { Error() string }
Comment créer une erreur :
// example 1 func Sqrt(f float64) (float64, error) { if f < 0 { return 0, errors.New("math: square root of negative number") } // implementation } // example 2 if f < 0 { return 0, fmt.Errorf("math: square root of negative number %g", f) }
Comment personnaliser error:
// errorString is a trivial implementation of error. type errorString struct { s string } func (e *errorString) Error() string { return e.s }
Il existe généralement trois stratégies de gestion des erreurs dans le langage Go :
1 Renvoyer et vérifier les valeurs d'erreur : le succès et les différentes erreurs sont représentés par des valeurs spécifiques et la couche supérieure. Le code vérifie la valeur de l'erreur pour déterminer ce qui est appelé. Statut d'exécution de func
2. Types d'erreur personnalisés : les erreurs spécifiques sont représentées par des types d'erreur personnalisés et le code de niveau supérieur détermine le type d'erreur via le type. assertions
3. Masquage des détails internes Gestion des erreurs : supposons que le code de niveau supérieur ne connaît aucun détail de l'erreur renvoyée par la fonction appelée et renvoie directement l'erreur vers le haut. l'
interface d'erreur est destinée aux gens, pas à la machine. Nous imprimons généralement la chaîne renvoyée par la méthode Error dans le journal ou l'affichons sur la console. Ne déterminez jamais comment gérer une erreur en déterminant si la chaîne renvoyée par la méthode Error contient une chaîne spécifique.
Pour plus de connaissances sur le golang, veuillez faire attention à la colonne tutoriel golang.
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!