Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 15557|Svar: 0

[Kommunikation] Hvis der er return, prøv til sidst at fange eksekveringsrækkefølgen

[Kopier link]
Opslået på 17/12/2015 12.34.00 | | |
1. Uanset om der er en undtagelse eller en undtagelse, vil koden i den sidste blok blive udført;
2. Når der er return i try and catch, vil det til sidst stadig blive udført;
3. Endelig udføres efter udtryksoperationen efter returneren (på dette tidspunkt returneres værdien efter operationen ikke, men værdien, der skal returneres, gemmes først, uanset koden i endeligt vil den returnerede værdi ikke ændres, selvom det er den tidligere gemte værdi), så funktionen returnerer værdien bestemmes før endelig udførelse;
4. Det er bedst ikke at inkludere return i final, ellers vil programmet afslutte tidligt, og returnværdien er ikke den returnværdi, der blev gemt i try eller catch.
Eksempel:
Situation 1:try{} catch(){}endelig{} return;
            Tilsyneladende udføres proceduren i rækkefølge.
Situation 2:try{ return; }catch(){} endelig{} return;
          Programmet eksekverer koden før return i try-blokken (inklusive udtryksoperationen i return-sætningen);
         derefter udfører den endelige blok, og til sidst udfører de returnerede i forsøg;
         endelig blokretur, fordi programmet er returneret i try, så det ikke længere eksekveres.
Situation 3:try{ } catch(){return; } endelig{} vender tilbage;
         Programmet udfører try first, og hvis det støder på en undtagelse, udfører det catch-blokken,
         Hvis der er en undtagelse, eksekver koden før return (inklusive udtryksoperationen i return-sætningen) i catch, og udfør derefter al koden i den endelige sætning.
                     Til sidst udfører du returen i catch-blokken. Derefter vil koden på 4 steder ikke længere blive udført.
         Ingen undtagelse: Udfør try og returner så til sidst.
Situation 4:try{ return; }catch(){} endelig{return; }
          Programmet eksekverer koden før return i try-blokken (inklusive udtryksoperationen i return-sætningen);
          Udfør derefter den sidste blok, fordi der er return i den sidste blok, så afslut tidligt.
Sag 5:try{} catch(){return; }endelig{return; }
          Programmet udfører koden før return (inklusive udtryksoperationer i return-sætningen) i catch-blokken;
          Udfør derefter den sidste blok, fordi der er return i den sidste blok, så afslut tidligt.
Situation 6:try{ return; }catch(){return; } endelig{return; }
          Programmet eksekverer koden før return i try-blokken (inklusive udtryksoperationen i return-sætningen);
          Der er en undtagelse: eksekver koden før return (inklusive udtryksoperationen i return-sætningen) i catch-blokken;
                       Udfør derefter finalist-blokken, fordi der er return i finale-blokken, så den afslutter tidligt.
          Ingen undtagelse: udfør derefter den sidste blok igen, og afslut tidligt, fordi der er return i den sidste blok.

Endelig konklusion: Enhver return-sætning i try eller catch udføres før den endelige sætning, hvis endelig eksisterer.
                  Hvis der er en return-sætning i Finally, så vil programmet returnere, så return in Finally vil helt sikkert blive returneret.
                  Compileren implementerer endelig returen som en advarsel.




Tidligere:.net bruger HttpListener til at lytte til indhold og bruger tråde til at svare brugere for at forhindre blokering
Næste:VS2013, når hurtigt en bestemt kodelinje, hvad er genvejen?
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com