Slyh: setTimeout(1000); in Java? Bibliotheksprobleme mit JCreator

Beitrag lesen

Hallo,

try {
thread.sleep(1000);
}
catch(Exception e) {

}

Ganz spitze. Damit hast du eine konkrete Exception (InterruptedException)
durch die allgemein Exception-Klasse ersetzt. Das funktioniert zwar,
ist aber üblicherweise eine eher schlechte Idee, weil du ggf. wichtige
Informationen, die du über den konkreten Typ der Exception erhältst,
einfach verwirfst.

Thread.sleep() wirft zum Beispiel noch eine IllegalArgumentException, die
nicht explizit gefangen werden muß, weil sie von RuntimeException
abgeleitet ist. Diese will man hier auch eher nicht fangen, weil sie
(in diesem Fall) auf einen Programmierfehler hinweist. Einfach den
Bug zu ignorieren, indem man das allgemeine Exception fängt und verwirft,
ist eine sehr schlechte Idee.

Besser die IllegalArgumentException wird vom Laufzeitsystem gefangen und
ausgegeben. Dann kann man nämlich auch entsprechend reagieren und das
Programm korrigieren.

Fuer
[...]
catch(interuptedException e)
[...]
brauchtst du wohl noch einen include ,,, mit Exception e funktionierts sicher.

Nein, braucht man nicht, weil InterruptedException, genau wie Exception
im Package java.lang liegt, das standardmäßig importiert wird.

Das brauchst deswegen, weil Thread.sleep eine Exceptioon werfen kann ... sorry, weiss aber nicht wieso die geworfen wird - Tatsache :)

Sehr gute Antwort. Nicht.

Gruß
Slyh