|
|
Zveřejněno 17.12.2015 12:34:00
|
|
|

1. Bez ohledu na to, zda existuje výjimka nebo výjimka, kód v posledním bloku bude vykonán; 2. Když dojde k návratu ve snaze a chycení, nakonec bude stále popraven; 3. Nakonec se vykoná po operaci výrazu po návratu (v tomto okamžiku se hodnota po operaci nevrátí, ale hodnota, která má být vrácena, se uloží jako první, bez ohledu na kód, nakonec se vrácená hodnota nezmění, i když je to dříve uložená hodnota), takže hodnota návratu funkce je určena před konečným vykonáním; 4. Nejlepší je návrat nezahrnout do konce, jinak program ukončí program dříve a hodnota návratu není hodnotou uloženou v pokusu nebo chycení. Příklad:
Situace 1:try{} catch(){}final{} return;
Zřejmě se zákrok provádí v pořadí.
Situace 2:try{ return; }catch(){} konečně{} return;
Program vykoná kód před return v try-bloku (včetně operace výrazu v příkazu return);
poté provedete poslední blok a nakonec proveďte návrat v try;
Nakonec zablokujte return, protože program se vrátil v try, takže se již nespouští.
Situace 3:try{ } catch(){return; } konečně{} návrat;
Program vykoná try jako první, a pokud narazí na výjimku, provede catch block,
Pokud existuje výjimka, spusť kód před return (včetně operace výrazu v příkazu return) v catchu a poté vykonat veškerý kód v závěrečném příkazu.
Nakonec proveďte return v catch blocku. Nakonec se kód na 4 místech již nebude vykonávat.
Bez výjimky: Vykonej, zkusíš a pak se nakonec vrať.
Situace 4:try{ return; }catch(){} final{return; }
Program vykoná kód před return v try-bloku (včetně operace výrazu v příkazu return);
Pak proveďte poslední blok, protože v posledním bloku je návrat, takže odejděte dříve.
Případ 5:try{} catch(){return; }konečně{return; }
Program vykoná kód před return (včetně výrazových operací v příkazu return) v catch bloku;
Pak proveďte poslední blok, protože v posledním bloku je návrat, takže odejděte dříve.
Situace 6:try{ return; }catch(){return; } nakonec {return; }
Program vykoná kód před return v try-bloku (včetně operace výrazu v příkazu return);
Existuje výjimka: skonecujte kód před return (včetně operace výrazu v příkazu return) v bloku catch;
Pak proveďte závěrečný blok, protože v posledním bloku je návrat, takže končí dříve.
Bez výjimky: pak znovu proveďte poslední blok a odejděte dříve, protože v posledním bloku je návrat.
Konečný závěr: Jakýkoli příkaz return v try or catch se vykoná před finálním příkazem, pokud skutečně existuje.
Pokud je v konečném případě příkaz return, program se vrátí, takže return in nakonec bude určitě vrácen.
Kompilátor nakonec implementuje návrat jako varování.
|
Předchozí:.net používá HttpListener k poslechu obsahu a vlákna k odpovědi uživatelům, aby zabránil blokováníDalší:VS2013, rychle se dostat k určitému řádku kódu, jaká je ta zkratka?
|