Exécutez d'abord try, s'il y a une exception, exécutez catch et exécutez enfin quand même.
Une fonction exécutera définitivement la pièce finalement.
Concernant le processus d'exécution d'une fonction, lorsqu'il y a un retour, la fonction stockera les données dans un certain emplacement, puis dira à la fonction principale, je ne l'exécuterai plus, vous pourrez l'exécuter ensuite, donc la fonction sera lancé.
Mais quand enfin apparaît dans une fonction, final sera toujours exécuté. Par conséquent, même si return a été exécuté en try ou catch, la fonction ne se terminera pas à ce moment et ne demandera pas à la fonction principale de s'exécuter. Au lieu de cela, elle attendra. pour que finalement soit exécuté. Revenez ensuite en arrière et dites à la fonction principale de l'exécuter. À ce moment-là, si return apparaît dans final, la valeur de return écrasera la valeur dans try ou catch, puis la fonction principale sera informée : Je ne l’exécuterai pas, allez-y et exécutez-le. Ainsi, la fonction principale obtiendra finalement la valeur de retour. C'est à dire que la valeur de retour de la sous-fonction est toujours la valeur de retour dans finalement (tant qu'il y a une valeur dans la fonction appelée)