Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 15557|Vastaus: 0

[Viestintä] Jos palautus tulee, yritä lopulta saada kiinni suoritusjärjestys

[Kopioi linkki]
Julkaistu 17.12.2015 12.34.00 | | |
1. Riippumatta siitä, onko poikkeus vai poikkeus, viimeisen lohkon koodi suoritetaan;
2. Kun try-and catch -tilanteessa on palautus, lopulta suoritetaan silti;
3. Lopuksi suoritetaan lausekkeoperaation jälkeen paluun jälkeen (tällä hetkellä operaation jälkeistä arvoa ei palauteta, mutta palautettava arvo tallennetaan ensin, riippumatta koodista, palautettu arvo ei muutu, vaikka se olisi aiemmin tallennettu arvo), joten funktion palautusarvo määritellään ennen lopullista suoritusta;
4. On parasta olla sisällyttämättä palautusta lopuksi, muuten ohjelma poistuu aikaisin, eikä palautusarvo ole try or catch -tilassa tallennettu palautusarvo.
Esimerkki:
Tilanne 1:try{} catch(){}finally{} return;
            Ilmeisesti toimenpide suoritetaan järjestyksessä.
Tilanne 2:try{ return; }catch(){} lopulta{} palaa;
          Ohjelma suorittaa koodin ennen returnia try-lohkossa (mukaan lukien lausekeoperaatio return-lauseessa);
         sitten suorita viimeinen blokki ja lopuksi palautus try-tilassa;
         Lopuksi estä palautus, koska ohjelma on palannut try-ohjelmaan, joten sitä ei enää suoriteta.
Tilanne 3:try{ } catch(){return; } lopulta{} palaa;
         Ohjelma suorittaa try-toiminnon ensin, ja jos se kohtaa poikkeuksen, se suorittaa catch blockin,
         Jos poikkeus on olemassa, suorita koodi ennen returnia (mukaan lukien lausekeoperaatio return-lauseessa) catchissa, ja suorita sitten kaikki loppulauseen koodi.
                     Lopuksi suorita palautus kiinniottoblokissa. Lopulta neljän kohdan koodi ei enää suoriteta.
         Ei poikkeusta: suorita yritys ja lopulta palaa takaisin.
Tilanne 4:try{ return; }catch(){} lopulta{return; }
          Ohjelma suorittaa koodin ennen returnia try-lohkossa (mukaan lukien lausekeoperaatio return-lauseessa);
          Sitten suorita viimeinen lohko, koska viimeisessä lohkossa on paluu, joten poistu ajoissa.
Tapaus 5:try{} catch(){return; }lopulta{palaa; }
          Ohjelma suorittaa koodin ennen paluuta (mukaan lukien lausekkeet palautuslauseessa) catch-lohkossa;
          Sitten suorita viimeinen lohko, koska viimeisessä lohkossa on paluu, joten poistu ajoissa.
Tilanne 6:try{ return; }catch(){return; } lopulta{palaa; }
          Ohjelma suorittaa koodin ennen returnia try-lohkossa (mukaan lukien lausekeoperaatio return-lauseessa);
          On poikkeus: suoritetaan koodi ennen paluua (mukaan lukien lausekkeoperaatio palautuslauseessa) catch-lohkossa;
                       Sitten suorita viimeinen blokki, koska viimeisessä lohkossa on paluu, joten se poistuu aikaisin.
          Ei poikkeusta: suorita sitten viimeinen lohko uudelleen ja poistu aikaisin, koska viimeisessä lohkossa on paluu.

Lopullinen johtopäätös: Kaikki palautuslause try- tai catch-lauseessa suoritetaan ennen lopullista lausetta, jos se lopulta on olemassa.
                  Jos palautuslauseke tulee lopulta, ohjelma palautuu, joten palautus palautetaan lopulta varmasti.
                  Kääntäjä toteuttaa paluun lopulta varoituksena.




Edellinen:.net käyttää HttpListeneriä sisällön kuunteluun ja käyttää säikeitä vastatakseen käyttäjille estääkseen eston
Seuraava:VS2013, pääse nopeasti tiettyyn koodiriviin, mikä on pikakuvake?
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com