Fehlermeldungen in Releaseversion per MsgBox oder besser Assertions?
-
Während ich Debugfähigen Code für mein Programm schrieb, kam mir in den Sinn, was eigentlich die elegantere Vorgehensweise zum Abfangen von Fehlern in einer Release-Version ist.
In diesem speziellen Fall geht es darum Text per GDI-Funktionen auf den Schirm zu bringen. In der Debugversion ist es wohl am besten, wenn man ASSERT und ASSERT_VALID verwendet; was aber, wenn in der Final keine GDI-Ressourcen verfügbar sind? Sollte soetwas dann per MsgBox abgefangen werden?
So sieht es z.B. in meinem Code aus:
// Text zeichnen ASSERT(pPicCDC->TextOut(10,10, "Hugo is alive!"));Ich währe für Ideen dankbar...
Viele Grüße
Prog
-
ASSERT in der Releaseversion?
Wenn Assert eine Exception wirft, dann wird das Programm geschlossen ohne irgendwelche Daten gespeichert zu haben.
In so einem Fall solltest du am besten eine IF-Abfrage verwenden.
if (xy == NULL)
..
MessageBox("Fehler..
return -1;
..so in etwa.
das ASSERT, soll nur den Programmierer warnen, dass hier ein Fehler aufgetaucht ist, ohne dass eine korrekte FehlerBehandlungsroutine verwendet wurde.
Außerdem hilft es ihm, schnell mal eine Abfrage zu machen ohne dass er den ganzen Code oben ausprogrammieren muss.