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

}
catch(new Exceptions){
}
finally{
//делаем чето
}
...
Рейтинг: 0 / 0
23.09.2012, 15:27:52
    #37968759
whizzzkey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принудительно попасть в finally
p.s. забыл добавить в блок кода (модеры сильно не бейте)
...
Рейтинг: 0 / 0
23.09.2012, 15:45:33
    #37968768
ukku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принудительно попасть в finally
return или метки.
...
Рейтинг: 0 / 0
23.09.2012, 15:50:14
    #37968772
whizzzkey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принудительно попасть в finally
просвятите в метки! ретурн у меня полностю вышел из потока
...
Рейтинг: 0 / 0
23.09.2012, 15:56:43
    #37968774
ukku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принудительно попасть в finally
Гугл "java метки", Брюс Эккель "Философия java" гл. "нехорошая команда goto".
...
Рейтинг: 0 / 0
23.09.2012, 16:12:50
    #37968784
whizzzkey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принудительно попасть в finally
Так и знал что goto(), до конца надеялся на лучшее=)
...
Рейтинг: 0 / 0
23.09.2012, 16:35:48
    #37968801
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принудительно попасть в finally
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
23.09.2012, 22:23:29
    #37969113
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принудительно попасть в finally
whizzzkey,

В блок finally ты попадаешь всегда, поэтому тебе здесь и делать ничего не надо.
Код: java
1.
2.
3.
4.
5.
6.
7.
try {
    if(не_зеленые_обезьяны){
        // выполняем задуманную работу
    }
} finally{
    // освобождаем ресурсы
} 
...
Рейтинг: 0 / 0
28.09.2012, 22:06:04
    #37976664
ResidentR6
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как принудительно попасть в finally
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
Форумы / Java [игнор отключен] [закрыт для гостей] / Как принудительно попасть в finally / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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