Zum Inhalt springen

exit


Troja2k

Empfohlene Beiträge

kurz und knapp :

das wochenende ist vorbei und es lauern wiedermal ganz viele fragen, die die troja nicht alleine hinbekommt ;)

ich hab ja immenroch mein tolles programm *fg*

mit case-anweisungen. aber wie springe ich von einer case-anweisung ganz raus aus dem programm, so dass es sich beendet...

is bestimmt super simple..aber ich komm mal wieder nicht drauf

Link zu diesem Kommentar
Auf anderen Seiten teilen

das ist aber nicht sauber programmiert!!!

wie wärs wenn du die case Anweisung mit Break verlässt (evt noch nen Merker setzt) und nach der Switch Anweisung dann auf nen bestimmten Wert oder sonst was abprüfst... dann kannst du main() auch ganz sauber mit return verlassen (und vorher natürlich auch noch alle Aufräumarbeiten erledigen...)

... meiner Meinung nach ...

MfG Roman

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Original geschrieben von CrazyRay

das ist aber nicht sauber programmiert!!!

Kommt drauf an, bei einfachen Funktionen kann man vielleicht noch mit einem break und einem Marker arbeiten. Aber versuch das mal, wenn Du den Rückgabe-Wert noch durch 20 andere Schleifen, Funktionsaufrufe, Switch-Anweisungen und IF-Statements schleppen musst.

Im Zweifelsfall kann man seine Aufräumfunktionen mit atexit() oder on_exit() registrieren.

Ein return in main macht übrigens auch nichts anderes als exit mit dem return-Wert aufzurufen.

Nic

Link zu diesem Kommentar
Auf anderen Seiten teilen

exit() hin oder her - man kann mehrere Ansätze verfolgen. Ich z.B. würde mit Exceptions arbeiten sauber und leicht!

Ausserdem kann man dem exit() eine Zahl übergeben, mit was abgebrochen werden soll!

Wenn man in seinem Code sich bereiche macht, wie

#define READERROR 100

#define WRITEERROR 200

usw.

und dann immer mit exit(WRITEERROR ); das Programm verlässt.

Kann man diese Werte sogar per Script abfragen und weiß warum er abgeschmirt bzw. aus dem Programm gegegangen ist. :D

Link zu diesem Kommentar
Auf anderen Seiten teilen


// gibt -1 zurück im Fehlerfalle
inf foo()
{
switch(bar)
{
case 1:
case 2:
case 3:
case 4:
break;
case n:
return -1;
}

viele viele ANweisungen später (die ohnehin in eine andere Funktion sollten).

}


// wird Exception

inf foo()
{
switch(bar)
{
case 1:
case 2:
case 3:
case 4:
break;
case n:
throw std::runtime_error("Was auch immer");
}

viele viele ANweisungen später (die ohnehin in eine andere Funktion sollten).

}
[/php]

Wo ist da das Problem ?

Mit exit() riskiert man nur unnötig leaks.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...