54 votes

La panique récupère dans Go vs essayez d'attraper dans d'autres langues

Je viens de lire cet article sur Panic/Recover in Go et je ne sais pas en quoi cela diffère de try/catch dans d'autres langues courantes.

31voto

Jessta Points 1023

Panic/Recover sont des fonctions étendues. C'est comme dire que vous n'êtes autorisé qu'à un seul bloc try/catch dans chaque fonction et que l'essai doit couvrir l'ensemble de la fonction. Cela rend vraiment ennuyeux d'utiliser Panic/Recover de la même manière que java/python/c# etc. utilisent des exceptions. C'est intentionnel. Cela encourage également les gens à utiliser Panic/Recover de la manière pour laquelle il a été conçu. Vous êtes censé récupérer () à partir d'une panique (), puis renvoyer une valeur d'erreur à l'appelant.

20voto

Ekevoo Points 906

Je pense que nous sommes tous d'accord pour dire que panic est throw , recover est catch , et defer est finally .

La grande différence semble que recover va dans defer . Pour en revenir aux termes traditionnels, cela vous permet de décider exactement à quel point de votre finally vous voulez déranger catch quoi que ce soit, ou pas du tout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X