|
|
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 blokiranjeNaslednji:VS2013, hitro priti do določene vrstice kode, kakšna je bližnjica?
|