2016-07-20 8 views
-2
public static void main(String s[]) 
{ 
    Thread t=Thread.currentThread(); 
    t.setName("main"); 
    try 
    { 
     for(int i=0;i<=5;i++) 
     { 
      System.out.println(i); 
      Thread.sleep(1000);//interrupted exception(System provides error on its own) 
     } 
    } 
    catch(InterruptedException e) 
    { 
     System.out.println("main thread interrupted"); 
    } 
} 

`В моем понимании, когда есть условие исключения, управление переходит к улову, реализует его и оставляет код. когда мы используем thread.sleep и создаем catch для interruptedException, почему он продолжает работать? вместо того, чтобы уйти. Это код, когда для цикла запускается в первый раз, он печатает «0», когда он встречает thread.sleep, следовательно, прерванное исключение, не нужно ли его улавливать и выполнять S.O.P и заканчивать?Почему doesnt thread.sleep останавливается при первом улове?

+2

Ну ... вы вызвали исключение, которое вызовет 'sleep' для завершения? –

+1

Почему вы предполагаете, что оно прекратится, если вы не скажете об этом? –

ответ

0

Почему он продолжает работать?

Ваша программа не заканчивается, если вы не сообщите об этом. Обычно он работает. Запуск исключения не меняет этого.

0

Просто вызов Thread.sleep не вызывает прерывание Exception. Для этого кода, чтобы бросить InterruptedException, что-то должно было бы вызвать прерывание в потоке. Изменение кода

public class MainInterruptingItself { 

    public static void main(String s[]) { 
     Thread.currentThread().interrupt(); 
     try { 
      for(int i=0;i<=5;i++) { 
       System.out.println(i); 
       Thread.sleep(1000); 
      } 
     } 
     catch(InterruptedException e) { 
       System.out.println("main thread interrupted"); 
     } 
    } 
} 

и распечатает

0 
main thread interrupted 

Что здесь происходит, что вызов прерывания устанавливает флаг прерывания на резьбе. Когда Thread.sleep выполняется, он видит, что флаг прерывания установлен и основан на том, что генерирует исключение InterruptedException.

 Смежные вопросы

  • Нет связанных вопросов^_^