Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 15557|Odgovoriti: 0

[Komunikacija] Če je vračanje, poskusite na koncu ujeti vrstni red usmrtitve

[Kopiraj povezavo]
Objavljeno na 17. 12. 2015 12:34:00 | | |
1. Ne glede na to, ali obstaja izjema ali izjema, se izvede koda v zadnjem bloku;
2. Ko pride do vrnitve v poskusu lovljenja, bo na koncu še vedno izvršena;
3. Na koncu se izvede po operaciji izraza po vrnitvi (takrat vrednost po operaciji ni vrnjena, vendar se najprej shrani vrednost, ki jo je treba vrniti, ne glede na kodo na koncu se vrnjena vrednost ne spremeni, tudi če je prej shranjena), zato se vrednost funkcije za vrnitev določi pred končno izvedbo;
4. Najbolje je, da vračila ne vključite na koncu, sicer bo program predčasno zapustil, vrednost vračila pa ni tista, ki je shranjena v poskusu ali ulovu.
Primer:
Situacija 1:try{} catch(){}final{} return;
            Očitno se postopek izvaja po vrsti.
Situacija 2:try{ return; }catch(){} final{} return;
          Program izvede kodo pred return v bloku try (vključno z izrazno operacijo v ukazu return);
         nato izvede zadnji blok in na koncu izvede vrnitev v poskusu;
         Nazadnje blokiraj return, ker se je program vrnil v try, zato se ne izvaja več.
Situacija 3:try{ } catch(){return; } končno{} vrnitev;
         Program najprej izvede try, in če naleti na izjemo, izvede catch block,
         Če obstaja izjema, izvedite kodo pred return (vključno z izrazom v ukazu return) v catchu in nato izvedite vso kodo v končnem stavku.
                     Na koncu izvedite vračanje v bloku za ujetje. Končno se koda na 4 mestih ne bo več izvajala.
         Brez izjeme: Izvedi, poskusi in se nato končno vrni.
Situacija 4:try{ return; }catch(){} končno{return; }
          Program izvede kodo pred return v bloku try (vključno z izrazno operacijo v ukazu return);
          Nato izvedi zadnji blok, ker je v zadnjem bloku povratek, zato zapusti prej.
Primer 5:try{} catch(){return; }končno{return; }
          Program izvede kodo pred return (vključno z izraznimi operacijami v ukazu return) v catch bloku;
          Nato izvedi zadnji blok, ker je v zadnjem bloku povratek, zato zapusti prej.
Situacija 6:try{ return; }catch(){return; } končno{return; }
          Program izvede kodo pred return v bloku try (vključno z izrazno operacijo v ukazu return);
          Obstaja izjema: izvedi kodo pred return (vključno z izrazno operacijo v ukazu return) v catch bloku;
                       Nato izvedite zadnji blok, ker je v zadnjem bloku povratek, zato izstopi prej.
          Brez izjeme: nato izvedi zadnji blok znova in izstopi prej, ker je v zadnjem bloku povratek.

Končni zaključek: Vsak povratni stavek v try or catch se izvede pred končnim stavkom, če končno obstaja.
                  Če je na koncu v 'return statement', se program vrne, torej bo return in na koncu zagotovo vrnjen.
                  Prevajalnik na koncu implementira vrnitev kot opozorilo.




Prejšnji:.net uporablja HttpListener za poslušanje vsebin in uporablja niti za odzivanje uporabnikom, da prepreči blokiranje
Naslednji:VS2013, hitro priti do določene vrstice kode, kakšna je bližnjica?
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com