Java Was macht InterruptedException ie und wozu?

funkyfunk

Lt. Commander
Registriert
März 2008
Beiträge
1.397
Hallo,

ich muss als "Hausaufgabe" ein kleines Javaprogramm schreiben, bei dem sich anhand einer Schleife nach und nach ein Muster aufbaut. Damit man dieses am Bildschirm sieht, wird in jedem Schleifendurchlauf kurz unterbrochen:

try{Thread.sleep(50);}
catch(InterruptedException ie){};

Damit zu meiner Frage. Ich verstehe warum man einen try/catch-Zweig im Allgemeinen braucht, aber warum dieser hier stehen muss, ist mir nicht klar und auch nicht, was die Exception macht.

Könnte mir jemand in einfachen Worten kurz den Sinn beschreiben? Folgendes habe ich gefunden, steig aber nicht ganz durch:

Die Unterbrechung sitzt in einem zwingenden try-catch-Block, da eine InterruptedException ausgelöst wird, wenn der Thread unterbrochen wird – etwa durch interrupt() –, und diese keine RuntimeException ist.

Meine grobe Vermutung war, dass durch das stoppen des Ablaufs für das Betriebssystem der Eindruck entstehen könnte, dass das Programm abgestürzt ist.
 
Der Satz geht aber noch weiter...
"and another thread interrupts it using the interrupt method in class Thread."
Rein sprachlich ist das die Bedingung für mich, dass die Exception geworfen wird.

Das hab ich noch auf ner andern Seite gefunden.
Methode Sleep: Sie hält das Programm für eine gewisse Anzahl von Millisekunden an. Tritt innerhalb der Ausführung der Methode ein Fehler auf, so wird eine Ausnahme vom spezifizierten Typ geworfen, die wir prompt auffangen und durch eine Meldung auf dem Bildschirm ausgeben.
Für mich wäre dieser Fehler dann eben, dass ein anderes Programm dieses in dem Zeitraum in dem runtergezählt und pausiert wird, "interrupten" will. Für diesen Fall ist die InterruptedException nötig.

Kann aber auch sein, dass ich völlig aufm Holzweg bin.
 
Zurück
Oben