|
|
Paskelbta 2015-12-17 12:34:00
|
|
|

1. Nepriklausomai nuo to, ar yra išimtis, ar išimtis, galutiniame bloke esantis kodas bus vykdomas; 2. Kai yra grįžimas bandyti ir sugauti, galiausiai vis tiek bus įvykdytas; 3. Galiausiai vykdoma po išraiškos operacijos po grąžinimo (šiuo metu reikšmė po operacijos negrąžinama, bet pirmiausia išsaugoma grąžinama reikšmė, nepriklausomai nuo kodo galiausiai, grąžinta reikšmė nesikeis, net jei tai yra anksčiau išsaugota reikšmė), todėl funkcijos grąžinimo vertė nustatoma prieš galutinį vykdymą; 4. Geriausia neįtraukti grąžinimo į galutinį, kitaip programa bus uždaryta anksti, o grąžinama vertė nėra grąžinama vertė išsaugota bandyti arba sugauti. Pavyzdys:
1 situacija:try{} catch(){}finally{} return;
Matyt, procedūra atliekama tvarkingai.
2 situacija:try{ grįžti; }catch(){} pagaliau{} grįžti;
Programa vykdo kodą prieš grąžinant bandymo bloke (įskaitant išraiškos operaciją grąžinimo sakinyje);
tada vykdyti galutinį bloką, ir galiausiai vykdyti grįžti bandyti;
Galiausiai blokuoti grįžimą, nes programa grįžo bandant, todėl ji nebevykdoma.
3 situacija:try{ } catch(){return; } pagaliau{} grįžti;
Programa pirmiausia vykdo bandymą, o jei susiduria su išimtimi, vykdo gaudymo bloką,
Jei yra išimtis, vykdykite kodą prieš grąžinimą (įskaitant išraiškos operaciją grąžinimo sakinyje) laimikyje, o tada vykdykite visą kodą galutiniame sakinyje.
Galiausiai atlikite grąžinimą gaudymo bloke. Galiausiai kodas 4 vietose nebebus vykdomas.
Ne išimtis: vykdykite bandymą ir galiausiai grįžkite.
4 situacija:try{ grįžti; }catch(){} pagaliau{grįžti; }
Programa vykdo kodą prieš grąžinant bandymo bloke (įskaitant išraiškos operaciją grąžinimo sakinyje);
Tada vykdykite paskutinį bloką, nes paskutiniame bloke yra grąža, todėl išeikite anksti.
5 atvejis:try{} catch(){return; }pagaliau{grįžti; }
Programa vykdo kodą prieš grąžinimą (įskaitant išraiškos operacijas grąžinimo sakinyje) gaudymo bloke;
Tada vykdykite paskutinį bloką, nes paskutiniame bloke yra grąža, todėl išeikite anksti.
6 situacija:try{ grįžti; }catch(){grįžti; } pagaliau{grįžti; }
Programa vykdo kodą prieš grąžinant bandymo bloke (įskaitant išraiškos operaciją grąžinimo sakinyje);
Yra išimtis: vykdyti kodą prieš grąžinimą (įskaitant išraiškos operaciją grąžinimo sakinyje) gaudymo bloke;
Tada vykdyti galutinis blokas, nes yra grįžimas į galutinį bloką, todėl jis išeina anksti.
Ne išimtis: tada vėl vykdykite paskutinį bloką ir išeikite anksčiau, nes paskutiniame bloke yra grąža.
Galutinė išvada: Bet koks grąžinimo pareiškimas bandymo arba laimikio atveju vykdomas prieš galutinį pareiškimą, jei jis galiausiai yra.
Jei pagaliau yra grąžinimo pareiškimas, programa grįš, taigi grąžinimas galiausiai tikrai bus grąžintas.
Kompiliatorius pagaliau įgyvendina grąžinimą kaip įspėjimą.
|
Ankstesnis:.net naudoja "HttpListener" turiniui klausytis ir naudoja gijas, kad atsakytų vartotojams, kad būtų išvengta blokavimoKitą:VS2013, greitai pasiekite tam tikrą kodo eilutę, kokia yra nuoroda?
|