2012-05-01 10 views
5

Ich bin relativ neu zu Stackoverflow und Java, aber ich habe ein wenig Erfahrung in C. Ich mochte die sehr saubere Art von C beenden die Programme nach einer Fehlfunktion mit der 'Exit()' Funktion.Beenden von Funktionen in Haupt

Ich habe eine ähnliche Funktion System.exit() in Java gefunden, was unterscheidet sich von der C-Funktion und wann sollte ich ein 'System.exit()' am besten anstelle einer einfachen 'Rückkehr' in Java wie in einem void verwenden Hauptfunktion?

Antwort

5

System.exit() die Jvm beenden für dieses Programm initilized, wo return; nur die Steuerung von aktuellen Methode gibt zurück


Auch

+0

Ist das schlimm? Wenn die Hauptfunktion fehlschlägt, ist eine Beendigung der JVM in Ordnung, wenn es ein einfaches Programm ist? –

+0

Ja sollte mit normalem progra in Ordnung sein, aber meistens wird es verwendet, wo wir die Anwendung beenden möchten, nachdem wir alle erworbenen Ressourcen realisiert haben –

+0

yeah vielen dank. –

1

Siehe Anrufer System.exit() kann praktisch sein wenn Sie bereit sind, das Programm auf Grund des Benutzers zu beenden (d. h. eine GUI-Anwendung). return wird verwendet, um zum letzten Punkt der Programmausführung zurückzukehren. Die beiden sind sehr verschiedene Operationen.

2

System.exit() wird das Programm beenden, egal wer es anruft oder warum. return in der Hauptsache wird die main() verlassen, aber nichts töten, die es genannt. Für einfache Programme gibt es keinen Unterschied. Wenn Sie Ihre Hauptfunktion von einer anderen Funktion aus aufrufen möchten (das können Leistungsmessungen oder Fehlerbehandlung sein), ist das sehr wichtig. Ihre dritte Option ist das Werfen einer nicht erfassten Runtime-Ausnahme. Dies ermöglicht es Ihnen, das Programm tief aus dem Aufrufstapel zu beenden, allen externen Code, der Ihren main aufruft, einen programmatischen Weg zum Abfangen und Behandeln des Exits zu geben und dem Benutzer beim Beenden den Kontext dessen zu geben, was falsch gelaufen ist und wo im Gegensatz zu einem Exit-Status wie 2).