aus void heraus programm beenden
-
hallo leute,
ich habe eine kurze frage; kann ich aus einer void funktion heraus mein Programm beenden? Mit
return;
springt er ja nur in meine main funktion zurueck. ich moechte allerdings mein programm sofort beenden. geht das?
danke schonmal, gruss sabine
-
Mit exit kannst du das Programm beenden.
-
Das ist vollkommen egal, welchen Rückgabetyp die Funktion hat. Du suchst eines der folgenden (wahrscheinlich das erste):
http://www.cplusplus.com/reference/cstdlib/exit/
http://www.cplusplus.com/reference/cstdlib/abort/
http://www.cplusplus.com/reference/cstdlib/quick_exit/
http://www.cplusplus.com/reference/cstdlib/_Exit/Schau dir die Unterschiede und Gemeinsamkeiten genau an und wähle das für dich passende. Falls du nur Bahnhof verstehst, dann nimm exit.
-
Mir stellt sich die Frage, ob es sinnvoll ist, direkt aus einer Funktion das Programm zu verlassen. Es erscheint mir "sauberer" wenn die Funktionen eben verlassen werden bis zur main() und dann dort ganz normal das Programm beendet wird. Sie für mich irgendwie gefühlt schöner aus.
-
Ich mach so was nur bei Fehlern, die ein Weiterarbeiten sinnlos machen, z. B ne Datei fehlt oder so - da kommt schon mal in ner funktion mit exit(1) um einen entsprechenden Returncode zu setzen. Aber grundsätzlich sollte schon ein Programm in der main-Routine verlassen werden.
-
Fehler, die das Weiterarbeiten sinnlos machen, sind m.M.n. lediglich kein Speicher mehr.
Bei allem anderen sollte man wenigstens noch dem Nutzer die Gelegenheit geben, das Problem zu beheben (um jetzt bei Dateien zu bleiben).
-
Und wie soll das bei Batch-Verarbeitung in einer richtigen Produktion, gesteuert von z. b UC/4 funktionieren - da sitzt kein Benutzer vorm Bildschirm, der noch einen Dateinamen ergänzen könnte.Logisch, dass bei normalen Fehlern in Dialogprogrammen der Benutzer noch was tun können, sollte. Ich dachte auch mehr an große produktive Batch-Abläufe.
-
Nathan schrieb:
Fehler, die das Weiterarbeiten sinnlos machen, sind m.M.n. lediglich kein Speicher mehr.
Bei allem anderen sollte man wenigstens noch dem Nutzer die Gelegenheit geben, das Problem zu beheben (um jetzt bei Dateien zu bleiben).in manchen situationen lässt sich auch das speicherproblem lösen, indem einfach anwendungen geschlossen werden, um speicher freizugeben.
so lange kann das c-programm geduldig warten - kein grund für voreilige exits.
davon abgesehen ist es ein grottiger stil aus irgendwelchen funktionen heraus exit aufzurufen.