Comprendre `panic`
Fait partie de la section Logique & Flux du Journey GO de Coddy — leçon 42 sur 68.
En Go, panic est une fonction intégrée utilisée pour des situations véritablement exceptionnelles où votre programme rencontre une erreur irrécupérable et doit s'arrêter immédiatement. Contrairement aux erreurs régulières que vous gérez avec élégance, panic est réservée aux défaillances catastrophiques qui indiquent que quelque chose ne va pas fondamentalement avec la logique ou l'environnement de votre programme.
Lorsque panic est appelé, il arrête immédiatement l'exécution normale de la fonction actuelle et commence à dépiler la pile d'appels. Cela le rend très différent de l'approche typique de Go consistant à retourner des erreurs qui peuvent être gérées par le code appelant.
En Go idiomatique, panic est rarement utilisé. La communauté Go privilégie fortement la gestion explicite des erreurs via les valeurs de retour plutôt qu'une gestion des erreurs basée sur panic. Vous pourriez rencontrer panic dans des situations telles que l'accès à un tableau hors limites, le déréférencement d'un pointeur nul, ou lorsqu'une bibliothèque détecte un état impossible indiquant un bug de programmation.
La plupart des programmes Go devraient gérer les erreurs de manière élégante en utilisant l'interface d'erreur standard que vous avez apprise. panic ne devrait être envisagé que lorsqu'il n'y a vraiment aucun moyen raisonnable pour que votre programme continue de s'exécuter.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Aide-mémoire
En Go, panic est une fonction intégrée pour les erreurs irrécupérables qui arrête immédiatement l'exécution du programme :
panic("something went terribly wrong")Lorsque panic est appelée, elle arrête la fonction actuelle et dépile la pile d'appels. Utilisez panic avec parcimonie - uniquement pour les défaillances catastrophiques où le programme ne peut pas continuer. Go privilégie la gestion explicite des erreurs via les valeurs de retour plutôt que la gestion des erreurs basée sur panic.
Les situations courantes de panic incluent l'accès à un tableau hors limites, la déréférence de pointeur nul ou des états de programme impossibles qui indiquent des bogues.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Structures de contrôle avancées
Switch avec `fallthrough`Sortir de boucles imbriquéesContinuer une boucle spécifiqueL'instruction `goto`Récapitulatif - Contrôle de boucle avancé4Projet : Liste de tâches simple
Configuration du projetAjouter une tâche7Gestion des erreurs en profondeur
Types d'erreurs personnalisésEnvelopper des erreurs avec `%w`Désenvelopper avec `errors.Is`Désenvelopper avec `errors.As`Comprendre `panic`Utiliser `recover`Récapitulatif - Division sécurisée2Structures et Méthodes
Définir des méthodes sur des structuresReceveurs par valeurReceveurs par pointeurChoisir les receveursMéthodes vs FonctionsRécapitulatif - Comportement des structures5Les Maps en profondeur
Maps de StructsPointeurs comme valeurs de MapTester les Maps NilComparer des MapsRécapitulatif - Compteur de fréquence de mots3Interfaces (Les bases)
Qu'est-ce qu'une Interface ?Définir une InterfaceImplémenter une InterfaceUtiliser les types d'InterfaceInterface videAssertions de typeType SwitchRécapitulatif - Formes et comportements