Maison > Article > développement back-end > Comment puis-je gérer les paniques en Go avec la fonction « recover() » ?
Lorsqu'une erreur inattendue se produit dans Go, provoquant une panique, elle arrête immédiatement l'exécution du programme. Cependant, la fonction recovery() fournit un moyen de gérer les paniques, permettant aux programmes d'empêcher leur plantage.
Considérez le code suivant, où une panique se produit lorsqu'aucun argument de fichier n'est fourni :
package main import ( "fmt" "os" ) func main() { file, err := os.Open(os.Args[1]) if err != nil { fmt.Println("Could not open file") } fmt.Printf("%s", file) }
Pour gérer cette panique, on peut utiliser la fonction recovery() au sein d'une fonction différée :
func main() { defer func() { if err := recover(); err != nil { fmt.Println("Could not open file") } }() file, err := os.Open(os.Args[1]) if err != nil { panic(err) } fmt.Printf("%s", file) }
Si une erreur survient lors de l'ouverture du fichier, la panique est captée par la fonction recovery() et le message "Impossible d'ouvrir le fichier" est imprimé au lieu de planter le programme.
Dans Go, la panique ne devrait pas être le mécanisme de gestion des erreurs par défaut. Les contrôles d'erreur explicites sont généralement préférés. Cependant, la fonction recovery() fournit un moyen de gérer avec élégance les cas extrêmes où des paniques sont nécessaires, permettant aux programmes de maintenir un état fonctionnel même lorsque des erreurs inattendues se produisent.
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!