Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 15557|Odpoveď: 0

[Komunikácia] Ak je návrat, skúste nakoniec zachytiť poradie vykonania

[Kopírovať odkaz]
Zverejnené 17. 12. 2015 12:34:00 | | |
1. Bez ohľadu na to, či existuje výnimka alebo výnimka, kód v poslednom bloku sa vykoná;
2. Keď dôjde k návratu v pokuse o chytenie, nakoniec bude aj tak popravený;
3. Nakoniec sa vykoná po operácii výrazu po návrate (v tomto čase sa hodnota po operácii nevráti, ale hodnota, ktorá má byť vrátená, sa uloží ako prvá, bez ohľadu na kód v konečnom prípade, vrátená hodnota sa nezmení, aj keď je to predtým uložená hodnota), takže hodnota funkcie návrat sa určí pred konečným vykonaním;
4. Najlepšie je nezahrnúť návrat do záveru, inak program ukončí činnosť skôr a hodnota návratu nie je hodnotou vrátenia uloženou v pokuse alebo chytení.
Príklad:
Situácia 1:try{} catch(){}final{} return;
            Zrejme sa zákrok vykonáva v poriadku.
Situácia 2:try{ return; }catch(){} konečne{} return;
          Program vykoná kód pred return v try-bloku (vrátane výrazovej operácie v príkaze return);
         potom vykonať posledný blok a nakoniec return v try;
         Nakoniec zablokuj návrat, pretože program sa vrátil v try, takže sa už nespúšťa.
Situácia 3:try{ } catch(){return; } nakoniec{} návrat;
         Program vykoná try ako prvý, a ak narazí na výnimku, vykoná catch block,
         Ak existuje výnimka, vykonajte kód pred return (vrátane operácie výrazu v príkaze return) v catch a potom vykonajte celý kód vo finálnom príkaze.
                     Nakoniec vykonajte return v catch bloku. Nakoniec sa kód na 4 miestach už nebude vykonávať.
         Bez výnimky: Vykonať, skúsiť a nakoniec sa vrátiť.
Situácia 4:try{ return; }catch(){} konečne{return; }
          Program vykoná kód pred return v try-bloku (vrátane výrazovej operácie v príkaze return);
          Potom vykonajte posledný blok, pretože v poslednom bloku je návrat, takže odíďte skôr.
Prípad 5:try{} catch(){return; }nakoniec{return; }
          Program vykoná kód pred return (vrátane výrazových operácií v príkaze return) v bloku catch;
          Potom vykonajte posledný blok, pretože v poslednom bloku je návrat, takže odíďte skôr.
Situácia 6:try{ return; }catch(){return; } nakoniec {return; }
          Program vykoná kód pred return v try-bloku (vrátane výrazovej operácie v príkaze return);
          Existuje výnimka: vykonajte kód pred return (vrátane výrazovej operácie v príkaze return) v bloku catch;
                       Potom vykonajte záverečný blok, pretože v poslednom bloku je návrat, takže končí skôr.
          Bez výnimky: potom vykonáš posledný blok znova a odíď skôr, pretože v poslednom bloku je návrat.

Konečný záver: Každý príkaz return v try or catch sa vykoná pred posledným príkazom, ak nakoniec existuje.
                  Ak je nakoniec príkaz return, program sa vráti, takže return in nakoniec určite bude vrátený.
                  Kompilátor nakoniec implementuje return in ako varovanie.




Predchádzajúci:.net používa HttpListener na počúvanie obsahu a vlákna na reagovanie na používateľov, aby zabránil blokovaniu
Budúci:VS2013, rýchlo sa dostať k určitému riadku kódu, aká je skratka?
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com