|
|
Közzétéve 2015. 12. 17. 12:34:00
|
|
|

1. Függetlenül attól, hogy van kivétel vagy kivétel, a végső blokk kódja végrehajtásra kerül; 2. Amikor vissza van a próbálkozás és elkapás, végül még mindig végrehajtják; 3. Végül a visszaküldés után végrehajtják az expresszív művelet után (ekkor a művelet utáni érték nem kerül vissza, de a visszaküldendő érték kerül először, függetlenül a kódtól, a visszaküldött érték nem változik, még ha az korábban elmentett érték is), így a függvény visszaküldési értéke a végső végrehajtás előtt kerül meghatározásra; 4. A legjobb, ha végül nem kell bevonni a visszaküldést, különben a program korán kilép, és a visszaküldési érték nem a visszaküldési érték a try or catch (próbálkozás) alatt tárolt visszaküldési érték. Példa:
1. helyzet:try{} catch(){}finally{} return;
Úgy tűnik, a beavatkozás sorrendben történik.
2. helyzet:try{ return; }catch(){} végül{} visszatér;
A program a try blokkban a return előtt futtatja a kódot (beleértve a return utasításban szereplő expression műveletet is);
Ezután végrehajtsd az utolsó blokkot, és végül hajtsuk végre a visszaküldést a try-ben;
Végül blokkolja a visszatérést, mert a program visszatért a try-be, így már nem fut le.
3. helyzet:try{ } catch(){return; } végül{} visszatér;
A program először a try futtatást végzi, és ha kivételt észlel, végrehajtja a catch blockot,
Ha van kivétel, a kódot a return előtt (beleértve a return utasításban szereplő kifejezés műveletet is) a catchben, majd az összes kódot a végső utasításban hajtsd végre.
Végül hajtsd végre a visszaküldést a catch blockban. Végül a kód 4 helyen már nem lesz lefuttatva.
Nincs kivétel: Execut try, majd végül visszatér.
4. helyzet:try{ return; }catch(){} végül{return; }
A program a try blokkban a return előtt futtatja a kódot (beleértve a return utasításban szereplő expression műveletet is);
Ezután hajtsd végre az utolsó blokkot, mert a végső blokkban van visszatérés, szóval lépj ki korán.
5. eset:try{} catch(){return; }végül{return; }
A program a kódot a return előtt (beleértve a return utasításban szereplő kifejezésműveleteket is) a catch blockban;
Ezután hajtsd végre az utolsó blokkot, mert a végső blokkban van visszatérés, szóval lépj ki korán.
6. helyzet:try{ return; }catch(){return; } végül{return; }
A program a try blokkban a return előtt futtatja a kódot (beleértve a return utasításban szereplő expression műveletet is);
Van egy kivétel: a kódot a return előtt (beleértve a return utasításban szereplő kifejezés műveletet is) a catch blockban;
Ezután hajtsd végre a végső blokkot, mert a végső blokkban van visszatérés, így a blokk korán távozik.
Nincs kivétel: akkor újra végrehajtod az utolsó blokkot, és korán, mert a végső blokkban van visszatérés.
Végső következtetés: Bármely return utasítás a try or catch (try or catch) állapotban a végső kijelentés előtt van végrehajtva, ha végül létezik.
Ha végre van egy visszaküldési nyilatkozat, akkor a program visszatér, így a bejövő visszajelzés biztosan vissza fog érkezni.
A fordító végül figyelmeztetésként valósítja meg a return-et.
|
Előző:A .net a HttpListener-t használja tartalom meghallgatására, és a felhasználóknak válaszadási szálakat használ, hogy megakadályozza a blokkolástKövetkező:VS2013, gyorsan elérj egy bizonyos kódsort, mi a rövidítés?
|