Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 15557|Отговор: 0

[Комуникация] Ако има връщане, опитай най-накрая да хванеш заповедта за изпълнение

[Копирай линк]
Публикувано в 17.12.2015 г. 12:34:00 ч. | | |
1. Независимо дали има изключение или изключение, кодът във финалния блок ще бъде изпълнен;
2. Когато има връщане в опит и хващане, накрая все пак ще бъде изпълнено;
3. Накрая се изпълнява след операцията с израз след връщане (в този момент стойността след операцията не се връща, но стойността, която трябва да се върне, се запазва първа, независимо от кода в най-накрая, върнатата стойност няма да се промени, дори ако е вече запазената стойност), така че стойността на функцията се определя преди окончателното изпълнение;
4. Най-добре е да не се включва return накрая, в противен случай програмата ще излезе рано, а стойността на връщането не е стойността, запазена в try or catch.
Пример:
Ситуация 1:try{} catch(){}finally{} return;
            Очевидно процедурата се извършва по ред.
Ситуация 2:try{ return; }catch(){} накрая{} return;
          Програмата изпълнява кода преди връщането в try блока (включително операцията с израз в return оператора);
         след това изпълни финалния блок и накрая върна в опит;
         Накрая блокира Return, защото програмата се е върнала в TRY, така че вече не се изпълнява.
Ситуация 3:try{ } catch(){return; } накрая{} връщане;
         Програмата изпълнява try първа, и ако срещне изключение, изпълнява catch block,
         Ако има изключение, изпълнете кода преди return (включително операцията израз в изявлението return) в улавянето, а след това изпълнете целия код във финалното изявление.
                     Накрая, изпълнете връщането в блока за хващане. След това кодът на 4 места вече няма да се изпълнява.
         Без изключение: Execute, try и накрая return.
Ситуация 4:try{ return; }catch(){} накрая{return; }
          Програмата изпълнява кода преди връщането в try блока (включително операцията с израз в return оператора);
          След това изпълни последния блок, защото има връщане в последния блок, така че излез по-рано.
Случай 5:try{} catch(){return; }накрая{връщане; }
          Програмата изпълнява кода преди return (включително операции с изрази в оператора return) в блока за улавяне;
          След това изпълни последния блок, защото има връщане в последния блок, така че излез по-рано.
Ситуация 6:try{ return; }catch(){return; } накрая{връщане; }
          Програмата изпълнява кода преди връщането в try блока (включително операцията с израз в return оператора);
          Има изключение: изпълни кода преди return (включително операцията израз в оператора return) в блока за улавяне;
                       След това изпълни финалния блок, защото има return в финалния блок, така че излиза рано.
          Без изключение: след това изпълни последния блок отново и излез по-рано, защото има връщане в финалния блок.

Окончателен извод: Всяко return в try или catch се изпълнява преди финалната оператора, ако най-накрая съществува.
                  Ако накрая има декларация за връщане, тогава програмата ще се върне, така че връщането в крайна сметка определено ще бъде върнато.
                  Компилаторът реализира return in накрая като предупреждение.




Предишен:.net използва HttpListener за слушане на съдържание и използва нишки, за да отговаря на потребителите с цел предотвратяване на блокиране
Следващ:VS2013, бързо достигане на определен ред код, какъв е краткият път?
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com