Maison  >  Article  >  développement back-end  >  Comment intercepter les erreurs dans Golang

Comment intercepter les erreurs dans Golang

silencement
silencementoriginal
2019-12-25 13:17:211913parcourir

Comment intercepter les erreurs dans Golang

Le type d'interface d'erreur est introduit dans Golang comme mode standard pour la gestion des erreurs. Si la fonction renvoie une erreur, la liste des types de valeurs de retour doit contenir une erreur. La classe de traitement des erreurs

est similaire au code d'erreur en langage C et peut être renvoyée couche par couche jusqu'à ce qu'elle soit traitée.

Golang introduit deux fonctions intégrées panic et recovery pour déclencher et terminer le processus de gestion des exceptions, et introduit le mot-clé defer pour retarder l'exécution de la fonction après le report.

La fonction retardée (fonction après defer) ne sera pas exécutée tant que la fonction contenant l'instruction defer n'est pas exécutée, que la fonction contenant l'instruction defer passe ou non le retour

Fin normalement ou se termine anormalement à cause de la panique. Vous pouvez exécuter plusieurs instructions defer dans une fonction, et elles sont exécutées dans l'ordre inverse de la déclaration.

Il est recommandé d'étudier le "tutoriel golang"

Lorsque le programme est en cours d'exécution, si vous rencontrez des situations telles que le référencement d'un pointeur nul, hors -bounds indice, ou en appelant explicitement une fonction de panique, etc. , alors l'exécution de la fonction de panique est d'abord déclenchée, puis la fonction de retard est appelée. L'appelant de

continue de paniquer, donc le processus continue de se produire à plusieurs reprises dans la pile d'appels : les fonctions arrêtent de s'exécuter, les fonctions d'exécution retardée sont appelées, etc. S'il n'y a pas d'appel à la fonction recovery

dans la fonction delay, le point de départ du ctrip sera atteint, le ctrip se terminera, puis tous les autres ctrips, y compris le ctrip principal (similaire au ctrip principal thread en langage C, sera terminé) L'ID Ctrip est

1).

Les erreurs et les exceptions font la différence entre l'erreur et la panique en termes de mécanisme Golang. Il en va de même pour de nombreux autres langages, tels que C++/Java. Il n'y a pas d'erreur sauf errno, et il n'y a pas de panique

mais lancer.

Les erreurs et exceptions Golang peuvent être converties les unes dans les autres :

Les erreurs sont converties en exceptions. Par exemple, la logique du programme essaie de demander une URL, et elle essaie jusqu'à trois fois. la requête échoue pendant les trois tentatives, c'est une erreur. Si elle échoue après le troisième essai,

l'échec sera transformé en exception. Les exceptions se transforment en erreurs. Par exemple, une fois l'exception déclenchée par la panique récupérée, la variable de type d'erreur dans la valeur de retour est attribuée, afin que la fonction de niveau supérieur

puisse continuer le processus de gestion des erreurs.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn