Exception abfangen
-
Hallo,
ich hab mal wieder ein dummes Problem bei dem ich alleine nicht weiterkomme. Internet + Hilf war erfolglos.
Und zwar frage ich mit
TIdHTTP *http=new TIdHTTP(0); http->HandleRedirects=true; Seite=http->Get(url);den Quelltext einer Internetseite ab. Das funktioniert auch wunderbar.
Wenn aber keine Internetverbindung existiert oder eine falsche Adresse angegeben wurde, wird eine Fehlermeldung angezeigt
"Im Projekt xxxxx ist eine Exception der KlasseEIdSocketError aufgetreten. Meldung 'Socket Error #10061 Connection refused'"
Ich habe es bereits mit
try { TIdHTTP *http=new TIdHTTP(0); http->HandleRedirects=true; Seite=http->Get(url); } catch(...) { }versucht, doch die Meldung erscheint trotzdem.
Ziel ist es, eine eigene Fehlermeldung aus zu geben, die nicht zum Totalabsturz des Programms führt.
mfg
Raimond
-
wird der Exception nur aufgerufen wenn du die Applikation mit dem Debugger startest, oder auch wenn du die *.exe direkt startest?
-
ahhhhh, sobald ich die exe starte funktioniert die Try-Catch Sache.
D.h. Ich muss im c++ builder mit eventuellen Fehlermeldungen leben?
-
Hallo
das laesst sich abschalten
Mfg
Klaus
-
Um das etwas präziser zu formulieren (BCB 4 - 6, 2k6 müsste ähnlich sein):
Tools->Debugger Options->Language Exceptions den Haken bei "Stop on C++ Exceptions" entfernen. Benutz das aber mit Bedacht, da dadurch jede ausgeworfene Exception, die abgefangen wurde, unterdrückt wird! Das macht zwar, dass sich dein Problem ähnlicher Verhält als im Produktionseinsatz, könnte der Entdeckung schwerer Fehler aber gegenwirken!
-
Vielen Dank an euch drei.
Ich werde es dann nur bei Bedarf deaktivieren.
Ich wünsche euch noch einen schönen Abend
mfg
Raimond