Gestion des paniques dans Go
Dans Go, un programme peut rencontrer des paniques lorsqu'une erreur inattendue se produit. Par défaut, une panique arrête l'exécution du programme. Cependant, il est possible d’« attraper » ces paniques et de les gérer avec élégance. Cet article donne un aperçu de la façon de gérer les paniques dans Go.
Catching Panics
Go fournit une fonction recovery() intégrée qui permet à un programme de gérer la panique. comportement. Lorsqu'une panique se produit dans une goroutine, recovery() peut être utilisé pour intercepter la panique et renvoyer sa valeur.
Exemple :
Considérez le code suivant :
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) }
Si aucun argument de fichier n'est fourni, ce code paniquera en raison d'une erreur d'index hors plage. Pour gérer cette panique, nous pouvons utiliser recovery() comme suit :
package main import ( "fmt" "os" ) func main() { // Wrap the main function in a deferred function that recovers from panics defer func() { if err := recover(); err != nil { fmt.Printf("Caught panic: %v\n", err) } }() file, err := os.Open(os.Args[1]) if err != nil { fmt.Println("Could not open file") } fmt.Printf("%s", file) }
Maintenant, si le programme est exécuté sans argument de fichier, il interceptera la panique et imprimera le message d'erreur au lieu de se terminer.
Quand utiliser les paniques
Bien que détecter les paniques puisse être utile dans certaines situations, il est important de les utiliser judicieusement. Le paradigme de Go met l'accent sur la vérification explicite des erreurs, et les paniques ne doivent être utilisées que dans des circonstances exceptionnelles où la récupération n'est pas possible.
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!