Un code ne s'exécute pas toujours correctement. Cela est d'autant plus vrai lorsque l'utilisateur peut saisir des données ou que des données sont lues dans des sources externes. Il faut alors indiquer proprement qu'une erreur est apparue.
1. Assurer l'exécution d'un code même en cas d'erreur
Lorsque l'on exécute du code, il est possible qu'une erreur survienne mais que l'on souhaite tout de même exécuter quelques instructions avant de renvoyer l'erreur. Cela se produit typiquement lorsque l'on manipule des fichiers : en cas d'erreur, on va vouloir fermer proprement le fichier avant de renvoyer un message. Pour indiquer à Go le code à exécuter avant de renvoyer un résultat (return), il faudra utiliser l'instruction defer.
Nous n'avons pas encore vu comment manipuler les fichiers en Go. Voici donc comment utiliser defer dans une syntaxe mi-Go, mi-algorithmique :
01: func readFile(filename string) {
02: defer fermeture du fichier
03:
04: ouverture du fichier
05: lecture, traitement et affichage des données
06: }
Deux cas se présentent : soit le fichier est ouvert puis lu sans problème et l'instruction defer est exécutée (et donc le fichier est fermé), soit le fichier est ouvert...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première