Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прерывание программы 
V
    Опции темы
Demetrio
Дата 23.3.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 1.5.2007

Репутация: нет
Всего: нет



Вопрос новичка...
есть gui-swt приложение.... в нем есть модуль чтение потока, поток может возвращаеть код ошибки...
Если код ошибки присутствует, то мне надо ПРЕРВАТЬ ВСЕ дальнейшие действия и вывести предупреждение ...  Точек обращение к функции чтения потока много, в разных местах....
Как такое правильно реализуется? В каком направлении копать? 
Заранее спасибо спасибо
Дмитрий


Код

                       BufferedReader output = new BufferedReader(new InputStreamReader(proc.getInputStream()));
            String line = null;
            while ((line = output.readLine()) != null) {
                if( checkError(line) ) {
                    if( codeError.equalsIgnoreCase(codeError) )
                        throw new InterruptedException();
                }
                ......
            }
            output.close();

PM MAIL   Вверх
ressac
Дата 23.3.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 25.11.2006

Репутация: нет
Всего: 1



Код

.
.
.
try
{
    while ((line = output.readLine()) != null) 
        if( checkError(line) )
           if( codeError.equalsIgnoreCase(codeError) )
              throw new InterruptedException();
}
catch(InterruptedException e)
{
       e.toString();
}
.
.
.

/********************/
class InterruptedException extends Exception
{
    public String toString()
    {
       return "InterruptedException.";
    }
}




это?
PM MAIL   Вверх
Demetrio
Дата 24.3.2008, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 1.5.2007

Репутация: нет
Всего: нет



не совсем ....
исключение  срабатывает, но код продолжает работать....
а мне бы остановить..... Как я понимаю, мне надо try поднимать гораздо выше, там где  я только вызываю функцию чтения и вывожу ее результаты( чтобы не доводить до ошибок)...а может и нет... буду копать


Это сообщение отредактировал(а) Demetrio - 24.3.2008, 14:35
PM MAIL   Вверх
ressac
Дата 24.3.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 25.11.2006

Репутация: нет
Всего: 1



ну можно впихнуть что-то что-бы останавливало код, только не знаю что smile
PM MAIL   Вверх
Demetrio
Дата 24.3.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 1.5.2007

Репутация: нет
Всего: нет



Тогда в догонку....
Как лучше оформить перехват исключения на верхнем уровне? Неужели ставить throws на каждый метод в цепочке, чтобе передать исключение на самый верхний уровень.... или есть более элегантные решения?
PM MAIL   Вверх
ressac
Дата 24.3.2008, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 25.11.2006

Репутация: нет
Всего: 1



Demetrio, это единственный что я знаю, яву недавно учу smile Самому интересно.
PM MAIL   Вверх
ressac
Дата 24.3.2008, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 25.11.2006

Репутация: нет
Всего: 1



сейчас подумалось а можно например несколько методов заключить в один try  ? ты пробывал так?
PM MAIL   Вверх
Demetrio
Дата 24.3.2008, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 1.5.2007

Репутация: нет
Всего: нет



решилось очень  просто в моем случае...
 сделал свое исключение от SWTException . Оказалось, что его вызвать и перехватить можно его в любой точке swt-приложения... очень удобно. 
Я awt и swing не пользовал, но вероятно такой вариант имеется и там.
Дмитрий


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.