Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 15557|Répondre: 0

[Communication] S’il y a un retour, essayez de capturer enfin l’ordre d’exécution

[Copié le lien]
Publié sur 17/12/2015 12:34:00 | | |
1. Qu’il y ait une exception ou une exception, le code du dernier bloc sera exécuté ;
2. Lorsqu’il y a un retour dans la tentative d’attraper, finalement sera quand même exécuté ;
3. Finalement est exécuté après l’opération d’expression après retour (à ce moment-là, la valeur après l’opération n’est pas retournée, mais la valeur à retourner est sauvegardée en premier, quel que soit le code dans finalement, la valeur retournée ne changera pas, même si c’est la valeur précédemment enregistrée), donc la valeur de retour de fonction est déterminée avant l’exécution finale ;
4. Il est préférable de ne pas inclure return dans final, sinon le programme se terminera plus tôt, et la valeur return n’est pas celle enregistrée dans try ou catch.
Exemple:
Situation 1:try{} catch(){}finally{} return ;
            Apparemment, la procédure est réalisée dans l’ordre.
Situation 2:try{ return ; }catch(){} finally{} return ;
          Le programme exécute le code avant return dans le bloc try (y compris l’opération d’expression dans l’instruction return) ;
         puis exécuter le dernier bloc, et enfin exécuter le retour dans try ;
         enfin block return, car le programme est revenu dans try, donc il n’est plus exécuté.
Situation 3:try{ } catch(){return ; } finalement{} return ;
         Le programme exécute try en premier, et s’il rencontre une exception, il exécute le bloc de catch,
         S’il y a une exception, exécutez le code avant return (y compris l’opération d’expression dans l’instruction return) dans la capture, puis exécutez tout le code de l’instruction finale.
                     Enfin, exécutez le retour dans le bloc de réception. Après enfin, le code à 4 endroits ne sera plus exécuté.
         Pas d’exception : exécuter, essayer, puis finalement revenir.
Situation 4:try{ return ; }catch(){} finally{return ; }
          Le programme exécute le code avant return dans le bloc try (y compris l’opération d’expression dans l’instruction return) ;
          Ensuite, exécutez le dernier bloc, car il y a un retour dans le dernier bloc, donc quittez tôt.
Affaire 5:try{} catch(){return ; }enfin{retour ; }
          Le programme exécute le code avant return (y compris les opérations d’expression dans l’instruction return) dans le bloc catch ;
          Ensuite, exécutez le dernier bloc, car il y a un retour dans le dernier bloc, donc quittez tôt.
Situation 6:try{ return ; }catch(){return ; } finalement{retour ; }
          Le programme exécute le code avant return dans le bloc try (y compris l’opération d’expression dans l’instruction return) ;
          Il existe une exception : exécuter le code avant return (y compris l’opération d’expression dans l’instruction return) dans le bloc catch ;
                       Ensuite, exécutez le bloc final, car il y a un retour dans le bloc final, donc il sort plus tôt.
          Pas d’exception : puis exécuter à nouveau le dernier bloc, et sortir tôt car il y a un retour dans le dernier bloc.

Conclusion finale: Toute instruction return dans try ou catch est exécutée avant la déclaration finale, si elle existe finalement.
                  S’il y a un recours de retour dans finalement, alors le programme reviendra, donc le retour dans finalement sera certainement retourné.
                  Le compilateur implémente le retour en enfin comme avertissement.




Précédent:.net utilise HttpListener pour écouter le contenu et utilise des threads pour répondre aux utilisateurs afin d’éviter le blocage
Prochain:VS2013, atteignez rapidement une certaine ligne de code, quel est le raccourci ?
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com