Excaption Handling schlägt fehl?
-
Hi!
Hab grad auf anraten mal folgenden Beitrag zu Excaptions gelesen:
http://www.c-plusplus.net/forum/viewtopic.php?t=39264Doch leider hilft es bei meinem Problem nicht weiter, ich habe
eine Codestelle an der manchmal Excaptions auftreten die ich
abfangen will. Hab das dann so gemacht:try{
Memo1->Text=IdHTTP1->Get(Edit5->Text+"?SQLString="+Edit2->Text);catch(...){
MessageBox ( NULL, "Dohh", "Hallo von?", MB_OK );
}Doch wenn ich absichtlich eine Excaption durch falscheingabe auslöse,
schmiert das Programm immernoch ab und öffnet nicht dies MessageBox
wie in catch festgelegt. Hab ich irgendeine Option nicht gesetzt oder wo ist der Fehler??MFG
Maruu
-
Naja.. du hast die geschweifte Klammer vor catch vergessen, aber das wird es ja wohl kaum sein...
Was heißt "schmiert ab"? Ich würde verstehen, wenn erst die übliche Exception-Meldung kommt, aber anschließend deine MessageBox kommt... aber eigentlich sollte es so klappen. Wenn die Exception wirklich im try-Block ausgelöst wird.
-
Jo die Klammer hab ich im Quelltext schon drin, is nur beim Kopieren abhanden gekommen. sieht also so aus:
try{
Memo1->Text=IdHTTP1->Get(Edit5->Text+"?SQLString="+Edit2->Text);
}
catch(...){
MessageBox ( NULL, "Dohh", "Hallo von?", MB_OK );
}Wenn ich nun ne Falsche Eingabe mache, schmiert er ab, der Grüne Peil der anzeigt in Welcher Zeile der Fehler ist, zeigt aus die Zeile mit Memo1->...
und die Folgende Meldung kommt:http://maruu.dyndns.org/exception.jpg
Die Dialogbox wird aber nicht aufgerufen.
Mhhm is irgendwie komisch. Wart könnte das sein?MFG
Maruu
-
Die IDE zeigt dir als Programmierer immer die Originalfehlermeldung an.
Wenn du das Programm aus dem Explorer heraus aufrufst, solltest du deine MessageBox sehen können.
-
Tatsache das muss man erstmal wisse *G*
Danke hat mir sehr geholfen!!
MFG
Maruu
-
Kann man übrigens bei Tools/Debugger/Sprach-Exceptions abschalten...
Hättest du die Exceptionmeldung bestätigt und F9 gedrückt, wäre wahrscheinlich deine Message-Box gekommen...
-
Das alles steht natürlich auch in o.g. FAQ-Beitrag ...
-
oh sorry das hab ich glatt überlesen. Hab noch ne kleine Frage:
Die Exception EIdProtocolReplyError wird bei mehreren Fehlern der
IdHTTP Komponente ausgelöst, z.B. bei nem 404 Error oder nem 401 Error.
Kann ich irgendwie abfragen im Catch Block welcher Error diese
Excaption ausgelöst hat???
Hier der Code:try{
Memo1->Text=IdHTTP1->Get(Edit5->Text+"?SQLString="+Edit2->Text);
}
catch(EIdProtocolReplyError& e){
MessageBox ( NULL, "Error", "Hallo von?", MB_OK );
}MFG
Maruu
-
Ok wer lesen kann ist klar im Vorteil ich gebs zu, geht mit z.B.
e.ReplyErrorCode da stehen die ganzen Fehler als Integer drin.MFG
Maruu
-
... gutes Design muß nicht teu(r)er sein