Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Прерывание программы


Автор: Demetrio 23.3.2008, 13:27
Вопрос новичка...
есть 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();

Автор: ressac 23.3.2008, 14:13
Код

.
.
.
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.";
    }
}




это?

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

Автор: ressac 24.3.2008, 16:33
ну можно впихнуть что-то что-бы останавливало код, только не знаю что smile

Автор: Demetrio 24.3.2008, 17:45
Тогда в догонку....
Как лучше оформить перехват исключения на верхнем уровне? Неужели ставить throws на каждый метод в цепочке, чтобе передать исключение на самый верхний уровень.... или есть более элегантные решения?

Автор: ressac 24.3.2008, 19:59
Demetrio, это единственный что я знаю, яву недавно учу smile Самому интересно.

Автор: ressac 24.3.2008, 22:24
сейчас подумалось а можно например несколько методов заключить в один try  ? ты пробывал так?

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


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)