errorhandler bzw. programmtermination
-
hi,
ich hoffe ihr könnt mir helfen. hab da noch ein verständnisproblem. habe erst vor kurzem angefangen c++ zu programmieren. davor meist nur irgendwelche scriptsprachen und vor jahren mal java...
ich willn programm schreiben. ein kleiner server... ich hab da jetzt z.B. ne klasse die im konstruktor initialisierungscode hat und im destruktor das ganz wieder entlädt. soweit so gut. wie geh ich aber nun vor wenn der konstruktor fehl schlägt, also etwas nicht initialisiert werden kann? klar es gibt viele wege aber wie ist der standardweg in c++ bzw. OOP sowas zu lösen? es hat ja kein sinn das programm dann weiter auszuführen. ich würds also gern mit exit() oder sowas beenden. aber das scheint mir unsauber. es braucht also etwas wie nen errorhandler oder ne möglichkeit alle destruktoren aufzurufen und dann zu beenden. ich dachte dafür wären exceptions geeignet aber da blick ich garnicht so recht durch. zumal ich das ganze programm beenden will nicht nur die instanz der klasse.
kann mir jemand vielleicht mal kurz aufzeigen wie man das normalerweise in c++ handelt? ich hab sogar schon ne logger klasse die standardfehlernummern in nem stringarray mit fehlermeldungen enthält. aber das is ziemlich unwichtig erstma ;)..
danke.
itti
-
das macht man schon mit exceptions. Beispiele dafür solltest du eigentlich genug finden.
-
Dann kannst ja die Fehlermeldung-Nummer als Exception durch die Constructors werfen lassen und diese dann an die Klasse des Error-Handlings uebergeben. Etwa so:
try { pMyInstance = new MyClass; } catch (int iErrorNo) { ErrorHandler.WriteLogError (iErrorNo); //weiteres Handling Error }