Exception bei FTP-Zugriff identifizieren (Indy)
-
Hallo,
nun eine weitere Frage zu den FTP-Objekt bzw. Exception-Handling (Indy).
Ich möchte genau den Fehlercode erfassen bei einer Exception, die bei einem Fehleauftritt, wenn ich mit dem TIdFTP-Object der Indy-Collection abrbeit.
Bisher habe ich immer mittry { } catch(...) { }
gearbeitet. Nun brauche ich den genauen Fehlercode. Wie kann ich diesen herausfinden?
-
Hallo
try { } catch(Exception& e) { Application->ShowException(&exception); }
bis bald
akari
-
Hi akari,
erstmal danke. Allerdings
Ich möchte genau den Fehlercode erfassen bei einer Exception, die bei einem Fehler auftritt, wenn ich mit dem TIdFTP-Object der Indy-Collection abrbeit.
Ich suche also noch dem Code, der doch irgendwo hinterlegt sein muss. Beispiel für ein Socket Error = 10054!
Ich muss verschiedene Fehlermöglichkeiten erkennen und unterschiedlich reagieren. Z.B. wenn ich auf dem FTP-Server auf ein Ordner zugreife, kann dieses zu einer Exception führen weil der Ordner nicht existiert oder weil die Netzwerkverbindung beendet wurde oder jemand das Netzwerkkabel in der Zeit gezogen hat. 10054 entspricht das Ziehen des Netzwerkkabels bzw. der Abbruch der Netzwerkverbindung.Ich muss dann unterschiedliche Routinen anwenden.
Dazu benötige ich bei einer Exception den genauen Code.
Wie bekomme ich den heraus?
-
Hallo
Wenn die FTP-Fehlernummern nicht in den Exceptions mit drinnestehen, dann wirst du so einfach nicht an die rankommen. Indy übernimmt zunächst die Fehlerverarbeitung des FTP-Verkehrs, und leitet Fehler gefiltert als Exception weiter. Eventuell kann ja der Quellcode der Indy-Komponente da weiterhelfen.
bis bald
akari
-
Vielleicht hast du Glück und GetLastError() liefert noch den Fehlercode des fehlerhaften Sockt Aufrufs zurück. Wenn die Indy Komponente aber selbst noch Win API Aufrufe ausführt (oder die Exception Klasse) dann wohl eher nicht.
-
Ich danke euch beiden. Das ist nett.
Ich werde das Problem nun anders umgehen müssen. Mit einem Flag signalisiere ich ob die Verbindung abgerissen ist oder nicht.