Wie kann ich ein Java-Programm anhalten, wenn festgestellt wird, dass es nicht ausgeführt werden soll?

8

Wenn ich prüfen möchte, ob einige Voraussetzungen gegeben sind, um ein Java-Programm zu starten, was ist das Beste? Machen: System.exit(1);

Oder werfen Sie eine RuntimeException in main , um den Haupt-Thread zu beenden? (Keine anderen Threads laufen noch)

    
Jim 13.02.2013, 15:02
quelle

6 Antworten

9

Im Idealfall beenden Sie Ihre Threads ordnungsgemäß. System.exit(1) funktioniert auch, aber es ist besser, wenn deine Threads signalisiert werden, dass sie aufhören müssen, was sie tun und zu beenden, indem sie beenden, was sie tun (d. h. ihre Methode bis zum Ende ausführen). Es hängt natürlich von Ihrem Design ab.

Das Werfen eines RuntimeException scheint zu undenkbar und könnte zu einem Verhalten führen, das Sie eigentlich nicht wollen.

    
jbx 13.02.2013, 15:05
quelle
2

Wenn Sie eine Stack-Ablaufverfolgung wünschen, verwenden Sie die RuntimeException, wenn System.exit (1) nicht sauberer ist.

    
CJ McAllister 13.02.2013 15:06
quelle
1

Sie sollten besser exit aufrufen, da Ausnahmen dazu dienen, Fehler im Programmierfluss zu finden und entsprechend damit umzugehen.

Aus der Sicht eines Benutzers, dessen Anwendung auf System.err die Probleme druckt und dann elegant schließt, ist viel intuitiver als ein Stack-Trace oder andere Code-Notationen wie EXCEPTION zu sehen, die man nicht verstehen sollte.

    
Grambot 13.02.2013 15:05
quelle
1

Entweder ist es gut, aber ich würde es vorziehen, System.exit() zu verwenden, da RuntimeException als irreführend angesehen werden könnte.

    
Ditch 13.02.2013 15:07
quelle
1

Wenn ich nicht mehr Informationen habe, als du gepostet hast, würde ich so etwas tun:

%Vor%     
jlordo 13.02.2013 15:04
quelle
0

Erzwinge niemals den Ausgang. Programmieren Sie Ihre Laufzeitmethode so, dass Ihre Anwendung keine Methoden mehr hat und sich selbst schließt. Ich schlage vor, vor jeder strukturellen Anwendung ein Diagramm zu zeichnen.

    
Lequend 19.01.2015 20:56
quelle

Tags und Links