Saubere Programmbeendung (Konsole)

Status
Nicht offen für weitere Antworten.

Lakai

Mitglied
Hallo Community!

Habe meine Programme bisher immer mit
Code:
System.exit(0);
beendet.

Allerdings wurde mir das nun angekreidet...
System.exit(0) ist ein Abbruch, kein normales Programmbeenden. Für einen normalen Programmablauf sollte das nicht verwendet werden.

Deshalb meine Frage:

Wie beendet man denn seine Programme (auf der Konsole) (in einer Methode quit()) korrekt?

Vielen Dank schon mal für eure Antworten!
 

0x7F800000

Top Contributor
Was ist die "Methode quit()" wo kommt die her? ???:L
Wozu willst du überhaupt irgendeine Methode haben, warum lässt du nicht einfach die main ganz normal und regulär und ohne zwischenfälle ihren Job zuende machen?
 

Lakai

Mitglied
Naja, das Programm erwartet in einer while(true) {} Benutzereingaben und wenn der Benutzer "quit" eingibt wird die quit() aufgerufen und das Programm beendet.
 

hdi

Top Contributor
ja, und? So:

Code:
public static void main(String[] args){
  while( eingabe != quit ){
         do stuff
  }
} // <-- Programm hat sich sauber beendet

Und wenn du unbedingt eine Methode aufrufen willst, dann halt so:

Code:
class MeinProgramm{

  private static boolean running;

  public static void main(String[] args){
     running = true;
     while( running ){
         do stuff
         if( eingabe == quit ){
                doQuit();
         }
     }
   } // <-- Programm hat sich sauber beendet

   private static void doQuit(){
        running = false;
   }
}
 

Lakai

Mitglied
Hm okay!

Mir erschien die Verwendung von System.exit irgendwie eleganter, aber dann werde ich es wohl so machen.

Danke!
 

musiKk

Top Contributor
Ich würde System.exit() nicht bedingungslos als schlecht bezeichnen. Die Dokumentation zu System.exit() bzw. Runtime.exit() gibt jedenfalls nichts dergleichen her. Wie beim normalen Beenden werden shutdown hooks und evtl. finalizers ausgeführt.

Ich denke, das kritischste an dieser Art, die VM zu beenden, ist, wenn man schon größere Programme hat und irgendwo mittendrin einen Fehler abfängt und daraufhin die VM beendet, ohne Files, Netzwerkverbindungen und dergleichen ordentlich zu schließen. Auch der Wartung ist dies unter Umständen nicht besonders zuträglich.

Vor allem meine erste Aussage ist nur meine Interpretation der Dokumentation; wenn da jemand was einzuwenden hat, dann lasse ich mich gerne auch eines Besseren belehren.
 

hdi

Top Contributor
Nichts, aber du kannst es nicht in eine andere Methode packen.
Und das will er ja scheinbar so machen.

Anonsten kannste natürlich auch break verwenden, oder halt direkt in der while-bedingung
definieren statt ein while(true), so wie ich es im ersten Bsp gemacht habe
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Best Practice Saubere Verbindung zwischen API und Business Layer mit DTO's Java Basics - Anfänger-Themen 2
D Best Practice Testdaten. Was ist eine saubere Lösung? Java Basics - Anfänger-Themen 3
S Saubere Implementierung Java Basics - Anfänger-Themen 2
Luk10 Saubere Initialisierung im Konstruktor Java Basics - Anfänger-Themen 4
T Objektübergabe - saubere Lösung? Java Basics - Anfänger-Themen 3
C Frage zu try - catch (saubere Lösung?) Java Basics - Anfänger-Themen 3
K Saubere Ausgabe in HTML Java Basics - Anfänger-Themen 5
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
M Nicht genug Eingabemöglichkeiten in der Konsole Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W char über die Konsole? Java Basics - Anfänger-Themen 7
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
I Java auf der Konsole Java Basics - Anfänger-Themen 5
C Erste Schritte Muster ausgeben in der Konsole - großes V Java Basics - Anfänger-Themen 5
K Ausgaben auf der Konsole (static Varible) Java Basics - Anfänger-Themen 9
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
J Konsole Java Basics - Anfänger-Themen 10
V Umgebungsvariable Genutzte Javaversion in der Konsole ändern Java Basics - Anfänger-Themen 5
N Tabelle schön in der Konsole ausgeben Java Basics - Anfänger-Themen 5
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
D Tabelle in der Konsole Java Basics - Anfänger-Themen 3
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
F Java auf Windows Konsole ausführen Java Basics - Anfänger-Themen 1
P Array einlesen von Konsole Java Basics - Anfänger-Themen 8
A Programm in Konsole Java Basics - Anfänger-Themen 4
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
L Input/Output Wurzelzeichen in der Konsole ausgeben | Brauche Hilfe Java Basics - Anfänger-Themen 6
E Compiler-Fehler Javac Windows vs Ubuntu /Script vs Konsole Java Basics - Anfänger-Themen 4
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
A Input/Output System.out Ausgabe aktualisieren, ohne Konsole vollzuspamen Java Basics - Anfänger-Themen 2
M Arrays auf Konsole formatiert ausgeben Java Basics - Anfänger-Themen 7
L Input/Output Konsole in Farben schreiben Java Basics - Anfänger-Themen 4
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
O Erste Schritte Scanner mehrere male benutzen (Konsole) Java Basics - Anfänger-Themen 7
O Etwas auf der Konsole ausgeben, usw. Java Basics - Anfänger-Themen 22
A Input/Output Prozess Output genauso in der Konsole ausgeben Java Basics - Anfänger-Themen 0
J Input/Output javac HelloWorld.java - Keine Textausgabe in der Konsole Java Basics - Anfänger-Themen 4
T Methoden Methode wird nicht auf Konsole ausgeführt Java Basics - Anfänger-Themen 3
T In Konsole darf nichts falsches eingetippt werden?! Java Basics - Anfänger-Themen 7
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
G Probleme mit Konsole Java Basics - Anfänger-Themen 4
J Zahlen aus Konsole einlesen Java Basics - Anfänger-Themen 1
C Input/Output Ein Spielbrett auf Konsole ausgeben Java Basics - Anfänger-Themen 2
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
F Wert in Linux auf die Konsole schreiben Java Basics - Anfänger-Themen 3
C Input/Output Einlesen von der Konsole mit InputStreamReader Java Basics - Anfänger-Themen 13
C Tannenbaum auf der Konsole ausgeben lassen Java Basics - Anfänger-Themen 12
Z AWT package -> keine Konsole? Java Basics - Anfänger-Themen 2
P Einlesen von der Konsole Java Basics - Anfänger-Themen 3
J Programm wird nicht auf der Konsole ausgeführt Java Basics - Anfänger-Themen 2
E Muster auf der Konsole ausgeben lassen (Schleifen) Java Basics - Anfänger-Themen 7
L Dialogbox statt Konsole verwenden Java Basics - Anfänger-Themen 5
B Konsole schließt sich sofort Java Basics - Anfänger-Themen 8
M Fortlaufende Konsole Java Basics - Anfänger-Themen 3
G Konsole gibt "alte" sachen aus Java Basics - Anfänger-Themen 3
L Konsole öffnen und Java Programm darin ausführen Java Basics - Anfänger-Themen 4
S Konsole Lanterna in NetBeans einbinden Java Basics - Anfänger-Themen 5
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
E Input/Output Konsole erkennt meinen Buchstaben nicht Java Basics - Anfänger-Themen 12
F String wird in Konsole nicht eingelesen Java Basics - Anfänger-Themen 19
A Objekte einer ArrayList auslesen und auf der Konsole ausgeben Java Basics - Anfänger-Themen 2
J Ausgabe auf der Konsole formatieren. Java Basics - Anfänger-Themen 6
T Konsole gibt nicht das Gewünschte aus Java Basics - Anfänger-Themen 5
N Mit Java Befehle auf Konsole ausführen Java Basics - Anfänger-Themen 4
M Input/Output Zeichen on Konsole einlesen Java Basics - Anfänger-Themen 3
S Erste Schritte Konsole leeren Java Basics - Anfänger-Themen 3
N String in Konsole schreiben?! Java Basics - Anfänger-Themen 2
S Beliebigen Tastendruck "einlesen" (ohne Konsole) Java Basics - Anfänger-Themen 3
F String wird richtig in konsole geschrieben aber falsch an Methode übergeben Java Basics - Anfänger-Themen 8
T Text auf der Konsole farbig machen Java Basics - Anfänger-Themen 6
OnDemand Applikation öffnen mit Konsole Java Basics - Anfänger-Themen 17
R Nach Ubuntu-Update: Konsole spuckt bei neu Kompilierten Programmen Fehler aus (BlueJ)(Ubuntu12.04) Java Basics - Anfänger-Themen 11
O Konsole - Kleine Frage Java Basics - Anfänger-Themen 22
O Bereits "gepostete" Strings in der Konsole verändern? Java Basics - Anfänger-Themen 2
T Parameter in Eigner Konsole Java Basics - Anfänger-Themen 2
B Erste Schritte Text in Konsole farbig ausgeben Java Basics - Anfänger-Themen 3
T Konsole leeren? Java Basics - Anfänger-Themen 7
K Methoden Einlesen einer unbegrenzten Matrix über Konsole Java Basics - Anfänger-Themen 6
S Programm läuft in Eclipse, aber nicht über Konsole Java Basics - Anfänger-Themen 10
E Keine Ausgabe der Konsole Java Basics - Anfänger-Themen 4
OnDemand Anführungszeichen im String werden als incompatible in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
J Java Daten von Konsole einlesen (Spezielles Problem) Java Basics - Anfänger-Themen 6
D Erste Schritte Java Konsole öffnet sich nicht Java Basics - Anfänger-Themen 4
S Konsole schließen, nachdem Jar läuft Java Basics - Anfänger-Themen 5
H Exit Befehl in eigener Konsole Java Basics - Anfänger-Themen 9
Luk10 Exception beim Ausführen per Konsole Java Basics - Anfänger-Themen 6
S Konsole work time Java Basics - Anfänger-Themen 9
S runable jar in der Konsole Java Basics - Anfänger-Themen 2
D Konsole leeren? Java Basics - Anfänger-Themen 5
B Konsole beendet - Programm kontrolliert runter fahren Java Basics - Anfänger-Themen 2
K javac in der konsole Java Basics - Anfänger-Themen 4
N Logger-Ausgabe und die Konsole Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben