Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 15557|Svare: 0

[Kommunikasjon] Hvis det er retur, prøv til slutt å fange kjørerekkefølgen

[Kopier lenke]
Publisert på 17.12.2015 12:34:00 | | |
1. Uansett om det finnes et unntak eller et unntak, vil koden i den siste blokken bli utført;
2. Når det er retur i try and catch, vil det til slutt fortsatt bli utført;
3. Til slutt utføres etter uttrykksoperasjonen etter returnering (på dette tidspunktet returneres ikke verdien etter operasjonen, men verdien som skal returneres lagres først, uavhengig av koden i til slutt vil ikke den returnerte verdien endres, selv om det er den tidligere lagrede verdien), så funksjonen returneres verdi bestemmes før endelig utførelse;
4. Det er best å ikke inkludere retur i til slutt, ellers vil programmet avslutte tidlig, og returverdien er ikke returverdien som ble lagret i try eller catch.
Eksempel:
Situasjon 1:try{} catch(){}endelig{} return;
            Tilsynelatende utføres prosedyren i riktig rekkefølge.
Situasjon 2:try{ return; }catch(){} endelig{} returnerer;
          Programmet kjører koden før return i try-blokken (inkludert uttrykksoperasjonen i return-setningen);
         deretter utfører den endelige blokken, og til slutt returneren i forsøk;
         Til slutt blokkretur, fordi programmet har returnert i Try, så det ikke lenger kjøres.
Situasjon 3:try{ } catch(){return; } endelig{} tilbake;
         Programmet kjører try first, og hvis det møter et unntak, kjører det catch-blokken,
         Hvis det finnes et unntak, kjør koden før return (inkludert uttrykksoperasjonen i return-setningen) i catch, og kjør deretter all koden i den endelige setningen.
                     Til slutt, utfør returen i catch-blokken. Etter det vil koden på fire steder ikke lenger bli kjørt.
         Ingen unntak: Kjør try og returner til slutt.
Situasjon 4:try{ return; }catch(){} endelig{return; }
          Programmet kjører koden før return i try-blokken (inkludert uttrykksoperasjonen i return-setningen);
          Deretter utfører du den siste blokken, fordi det er retur i den siste blokken, så avslutt tidlig.
Sak 5:try{} catch(){return; }endelig{return; }
          Programmet kjører koden før return (inkludert uttrykksoperasjoner i return-setningen) i catch-blokken;
          Deretter utfører du den siste blokken, fordi det er retur i den siste blokken, så avslutt tidlig.
Situasjon 6:try{ return; }catch(){return; } endelig{return; }
          Programmet kjører koden før return i try-blokken (inkludert uttrykksoperasjonen i return-setningen);
          Det finnes et unntak: kjør koden før return (inkludert uttrykksoperasjonen i return-setningen) i catch-blokken;
                       Deretter kjører du finalist-blokken, fordi det er return i finale-blokken, så den avslutter tidlig.
          Ingen unntak: så utfør den siste blokken igjen, og avslutt tidlig fordi det er retur i den siste blokken.

Endelig konklusjon: Enhver retursetning i try eller catch utføres før den endelige setningen, hvis endelig eksisterer.
                  Hvis det er en return-setning i Finallyly, vil programmet returnere, så return in Finally vil definitivt bli returnert.
                  Kompilatoren implementerer endelig returen som en advarsel.




Foregående:.net bruker HttpListener for å lytte til innhold og bruker tråder for å svare brukere for å forhindre blokkering
Neste:VS2013, kom raskt til en bestemt kodelinje, hva er snarveien?
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com