Verwendung von System.exit(0) problematisch?

Maik.Neumann

Aktives Mitglied
Hallo !

Warum soll die Verwendung von Aufrufen wie System.exit(0) oder System.exit(-1) eigentlich problematisch sein? Mal davon abgesehen, dass es wohlmöglich kein eleganter Stil ist?

Maik
 
Normalerweise endet ein Java-Programm, wenn der letzte laufende Threads beendet wird.
System.exit - egal, in welchem Thread es aufgerufen wird - beendet das Programm hingegen sofort. Dabei werden alle gerade laufenden Threads abgebrochen.

Daher sollte System.exit eigentlich nur in 2 Fällen verwendet werden:
  • Schwerer System-Fehler, der ein Weitermachen sinnlos macht.
  • Bei Command-Line-Utitility Programmen, die einen Return-Code an das Betriebssystem zurückgeben.

Verboten ist ein System.exit beispielsweise :
  • In einer Application-Server-Anwendung (Servlet,..)
  • In Plugins - also Java Code, der eine bestehende Anwendung um Funktionen erweitert.
 

Zurück
Oben