Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 15557|Ответ: 0

[Связь] Если есть возврат, попробуйте наконец поймать приказ на исполнение

[Скопировать ссылку]
Опубликовано 17.12.2015 12:34:00 | | |
1. Независимо от того, есть ли исключение или исключение, код в финальном блоке будет выполнен;
2. Когда происходит возврат в попытке и пойма, в конце концов всё равно выполняется;
3. В итоге выполняется после операции выражения после возврата (в данный момент значение после операции не возвращается, но сначала сохраняется значение для возвращения, независимо от кода в конечном итоге, возвращаемое значение не меняется, даже если оно ранее сохранённое), поэтому значение возврата функции определяется до окончательного выполнения;
4. Лучше не включать возврат в финал, иначе программа выйдет досрочно, и возвратное значение не будет сохранённым в попытке или ловле.
Пример:
Ситуация 1:try{} catch(){}finally{} return;
            Оказывается, процедура проводится по порядку.
Ситуация 2:try{ return; }catch(){} наконец{} return;
          Программа выполняет код перед возвратом в блоке try (включая операцию выражения в операторе return);
         затем выполните последний блок и, наконец, выполните возврат в попытке;
         Наконец, блок Return, потому что программа вернулась в TRY, и она больше не выполняется.
Ситуация 3:try{ } catch(){return; } наконец{} return;
         Программа выполняет try первым, и если встречает исключение, запускает блок catch,
         Если есть исключение, выполните код перед возвратом (включая операцию выражения в операторе return) в захвате, а затем выполните весь код в финальной операторе.
                     Наконец, выполните возврат в блоке ловли. После этого код в 4 местах больше не будет выполняться.
         Без исключений: выполнить попытку, а затем наконец вернуться.
Ситуация 4:try{ return; }catch(){} наконец{return; }
          Программа выполняет код перед возвратом в блоке try (включая операцию выражения в операторе return);
          Затем выполните последний блок, потому что в финальном блоке есть возврат, так что выходите раньше.
Случай 5:try{} catch(){return; }наконец{вернуться; }
          Программа выполняет код перед возвратом (включая операции выражения в операторе return) в блоке catch;
          Затем выполните последний блок, потому что в финальном блоке есть возврат, так что выходите раньше.
Ситуация 6:try{ return; }catch(){return; } наконец{return; }
          Программа выполняет код перед возвратом в блоке try (включая операцию выражения в операторе return);
          Есть исключение: выполнить код перед возвратом (включая операцию выражения в операторе return) в блоке ловли;
                       Затем выполните финальный блок, потому что в финальном блоке есть возврат, и он выходит рано.
          Без исключений: затем выполните последний блок снова и уходите раньше, потому что в финальном блоке есть возврат.

Окончательное заключение: Любая оператор возврата в try или catch выполняется перед финальной оператором, если она наконец существует.
                  Если в конечном итоге есть return statement, программа вернётся, значит, возврат в конечном итоге обязательно вернётся.
                  Компилятор наконец-то реализует возврат в качестве предупреждения.




Предыдущий:.net использует HttpListener для прослушивания контента и использует потоки для ответа пользователям с целью предотвращения блокировки
Следующий:VS2013, быстро достигайте определённой строки кода — какой ярлык?
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com