Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 15557|Risposta: 0

[Comunicazione] Se c'è ritorno, prova a catturare finalmente l'ordine di esecuzione

[Copiato link]
Pubblicato su 17/12/2015 12:34:00 | | |
1. Indipendentemente dal fatto che ci sia un'eccezione o un'eccezione, il codice nel blocco finale verrà eseguito;
2. Quando c'è ritorno in tentativo e cattura, finalmente verrà comunque eseguito;
3. Infine viene eseguito dopo l'operazione di espressione dopo il ritorno (in questo momento, il valore dopo l'operazione non viene restituito, ma il valore da restituire viene salvato per primo, indipendentemente dal codice in Infine, il valore restituito non cambierà, anche se è il valore precedentemente salvato), quindi il valore di ritorno della funzione viene determinato prima dell'esecuzione finale;
4. È meglio non includere return in final, altrimenti il programma uscirà anticipatamente e il valore return non è quello salvato in try o catch.
Esempio:
Situazione 1:try{} catch(){}finally{} return;
            A quanto pare la procedura viene eseguita in ordine.
Situazione 2:try{ return; }catch(){} finally{} return;
          Il programma esegue il codice prima di return nel blocco try (inclusa l'operazione di espressione nell'istruzione return);
         poi eseguire il blocco finale, e infine eseguire il ritorno in try;
         Infine block return, perché il programma è tornato in try, quindi non viene più eseguito.
Situazione 3:try{ } catch(){return; } finalmente{} return;
         Il programma esegue prima try, e se incontra un'eccezione, esegue il blocco di cattura,
         Se c'è un'eccezione, esegui il codice prima di return (inclusa l'operazione di espressione nell'istruzione return) nel catch, e poi esegui tutto il codice nell'istruzione finale.
                     Infine, esegui il ritorno nel blocco di presa. Dopo che finalmente, il codice in 4 punti non verrà più eseguito.
         Nessuna eccezione: esegui il tentativo e poi finalmente ritorna.
Situazione 4:try{ return; }catch(){} finalmente{return; }
          Il programma esegue il codice prima di return nel blocco try (inclusa l'operazione di espressione nell'istruzione return);
          Poi esegui il blocco finale, perché c'è ritorno nel blocco finale, quindi esci presto.
Caso 5:try{} catch(){return; }finalmente{ritorno; }
          Il programma esegue il codice prima del return (incluse le operazioni di espressione nell'istruzione return) nel blocco catch;
          Poi esegui il blocco finale, perché c'è ritorno nel blocco finale, quindi esci presto.
Situazione 6:try{ return; }catch(){return; } finalmente{ritorno; }
          Il programma esegue il codice prima di return nel blocco try (inclusa l'operazione di espressione nell'istruzione return);
          C'è un'eccezione: eseguire il codice prima del return (inclusa l'operazione di espressione nell'istruzione return) nel blocco catch;
                       Poi esegui il blocco finale, perché c'è ritorno nel blocco finale, quindi esce anticipatamente.
          Nessuna eccezione: poi esegui di nuovo il blocco finale e esci presto perché c'è ritorno nel blocco finale.

Conclusione finale: Qualsiasi istruzione return in try o catch viene eseguita prima dell'istruzione finale, se esiste finalmente.
                  Se c'è una dichiarazione di ritorno in finale, allora il programma restituirà, quindi la dichiarazione in finalmente verrà sicuramente restituita.
                  Il compilatore implementa il ritorno in finally come avviso.




Precedente:.net utilizza HttpListener per ascoltare i contenuti e usa thread per rispondere agli utenti e prevenire il blocco
Prossimo:VS2013, raggiungi rapidamente una certa riga di codice, qual è la scorciatoia?
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com