powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как принудительно попасть в finally
9 сообщений из 9, страница 1 из 1
Как принудительно попасть в finally
    #37968758
whizzzkey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята подскажите как реализовать такую фигню
try
{
if(зеленые_обезьяны){
перейти в finally
}

}
catch(new Exceptions){
}
finally{
//делаем чето
}
...
Рейтинг: 0 / 0
Как принудительно попасть в finally
    #37968759
whizzzkey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
p.s. забыл добавить в блок кода (модеры сильно не бейте)
...
Рейтинг: 0 / 0
Как принудительно попасть в finally
    #37968768
ukku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
return или метки.
...
Рейтинг: 0 / 0
Как принудительно попасть в finally
    #37968772
whizzzkey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просвятите в метки! ретурн у меня полностю вышел из потока
...
Рейтинг: 0 / 0
Как принудительно попасть в finally
    #37968774
ukku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гугл "java метки", Брюс Эккель "Философия java" гл. "нехорошая команда goto".
...
Рейтинг: 0 / 0
Как принудительно попасть в finally
    #37968784
whizzzkey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так и знал что goto(), до конца надеялся на лучшее=)
...
Рейтинг: 0 / 0
Как принудительно попасть в finally
    #37968801
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
whizzzkeyТак и знал что goto(), до конца надеялся на лучшее=) - На счет меток: Прыжки по меткам реализованы совсем по-другому. goto - "неработающее" зарезервированное слово.
- Блок finally выполнится всегда
- Можно к примеру сделать так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
try {
  throw new SomeException(); // ручной "выброс"
}
catch (SomeException e) { /* пусто */ }
catch (...) { ... }
catch (...) { ... }
catch (...) { ... }
catch (Exception e) { ... }
finally {
  // теперь мы здесь
}
...
Рейтинг: 0 / 0
Как принудительно попасть в finally
    #37969113
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
whizzzkey,

В блок finally ты попадаешь всегда, поэтому тебе здесь и делать ничего не надо.
Код: java
1.
2.
3.
4.
5.
6.
7.
try {
    if(не_зеленые_обезьяны){
        // выполняем задуманную работу
    }
} finally{
    // освобождаем ресурсы
} 
...
Рейтинг: 0 / 0
Как принудительно попасть в finally
    #37976664
ResidentR6
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.09.2012 22:23, vas0 пишет:
> В блок finally ты попадаешь всегда, поэтому тебе здесь и делать ничего
> не надо.

+1. Блок finally будет исполнен всегда. В том числе если сделать return.
Другой вопрос, КОГДА он будет исполнен. Если выбрасываешь исключение, то
СНАЧАЛА обработается исключение.

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

Используй короткие блоки try - finally всегда. Тогда не будет проблем
что застрявший на чём-то (или ждущий чего-то) поток почему-то удерживает
ресурс. Сам понимаешь, ситуации разные бывают. И если зелёная обезьяна,
то сначала избавься от зависимости.

Вообще в программировании есть золотое правило: если можешь ТОЧНО
сказать программе, что ей делать - именно так и пиши. И не нужно лишних
абстракций, обёрток, обходов и структурирования. Вплоть до банального
дублирования кода, если там пару строчек, и введения проверки "если" в
блоке финализации, которая проверит нужно ли что-то финализировать.

Для одноразовых задач всегда проще решить "в лоб", оставив рефакторинг
на потом, когда (если) именно этот кусок будет клонироваться или
масшатбироваться. Как показывает практика, точка роста хотелок заказчика
практически никогда заранее предсказать нельзя, и из 100 мест написанных
"как понятнее" едва ли 1-2 потребует рефакторинга.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как принудительно попасть в finally
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]