Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Как вернуться в цикл после исключения |
Автор: koreyko 12.12.2011, 18:05 | ||
Здравствуйте! Помогите решать задачу: Приложение по таймеру обращается к серверу, получает новые данные и записывает их во внешний файл. Бывает ситуация, когда с внешним файлом работает другая программа. В этом случае необходимо с заданной периодичностью пытаться записать данные. Сделал так:
В случае недоступности файла, куда необходимо записать данные, я, естественно, получаю исключение FileNotFoundException, которое прерывает цикл. Мне же необходимо, чтобы попытки записи продолжались, несмотря на исключения. Спасибо. |
Автор: LSD 12.12.2011, 18:29 |
Окружи saveData() try/catch блоком. |
Автор: koreyko 12.12.2011, 23:01 | ||
Спасибо, помогло! Остался вопрос по приведенному мной выше коду. На время работы цикла GUI перестает реагировать на действия пользователя. Насколько я понимаю, проблема в этом:
однако не разобрался - этот Thread останавливает текущий поток (т.е. SwingWorker) или какой-то другой? Другими словами, мне поможет уход от SwingWorker к чему-то другому или же Thread.sleep(sleepTime) здесь в любом случае не стоит применять? Спасибо. |
Автор: Mirkes 13.12.2011, 03:01 |
Вопрос с задержками обсуждался многократно. Посмотрите на форуме. В кратце. Если Ваш цикл выполняется в EDT (в потоке событий) то sleep применять не стоит, поскольку он всегда будет останавливать GUI. события таймера swing идут в потоке событий. |
Автор: Skipy 13.12.2011, 12:56 | ||
http://www.skipy.ru/technics/gui_sync.html |
Автор: koreyko 16.12.2011, 12:25 |
Всем спасибо, вроде бы разобрался. |