Programm bei Fehler korrekt beenden
-
Hallo,
std::ifstream file(text_name); if (!file) { std::cerr << "Kein Text-File!" << '\n'; exit(1); }habe hier in einem anderen Thread gelesen, das man exit() eigentlich nicht verwenden sollte. Nur wie beende ich bei obigen Beispiel-Fehler das Programm?
-
Falls obiger Code nicht in der
mainsteht, könnte eine entsprechende Exception angebracht sein, oder ein Rückgabewert, definitiv aber keine manuelle Beendigung des Programs.Falls der Code in der
mainsteht, dürfte doch einreturn 1;den gewünschten Effekt haben?
-
Steht eben leider nicht in der main. Und weiterlaufen darf das Programm dann nicht, wegen folgenden Zugriffsverletzungen.
-
Warum sollte das Programm nicht weiterlaufen sollen? Du kannst Exceptions oder Fehlerrückgabewerte benutzen und diese dann in den aufrufenden Funktionen behandeln.
-
Weil es dann abstürzt. Wenn dort wegen zB eines Tippfehlers ein Fehler ist, muss ich den Fehler außerhalb des Programm korrigieren. Deshalb will ich eigentlich gleich ganz aussteigen können.
Der Rückgabewert ist bei obigen Beispiel vom Typ string. Dann müsste ich also, wenn ich einen Fehlerrückgabewert nehmen will, diesen als Referenz ans obige Beispiel übergeben und diesen dann an die weiteren Funktionen übergeben und auswerten? Und wie steige ich dann dort aus?
-
roflo schrieb:
Du kannst Exceptions benutzen
-
Ok, nach kurzem Nachschlagen werde ich das mal versuchen. Melde mich wieder.
-
Super, vielen Dank für den Hinweis. Das klappt ja ganz gut
