Entwickler-Ecke

Internet / Netzwerk - IdFTP Fehler abfangen


ChrisCross - Mi 21.05.14 18:37
Titel: IdFTP Fehler abfangen
Hallo,

ich will mit folgendem Code den Host wird nicht gefunden Fehler abfangen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  try
    FTP1.Host := ''
    FTP1.Username := '';
    FTP1.Password := ''
    FTP1.Connect; 
  except
    on E: Exception do ShowMessage('Fehler');
  end;


Der Fehler wird mir aber trotzdem angezeigt. Hat einer eine Idee dazu?


mandras - Do 22.05.14 02:22

Kannst Du das bitte näher erläutern?

Ich habe es mit D6 und TIDFTP ausprobiert. Es erscheint nur die Meldung "Fehler", das ist ja korrekt, da der Except-Block dies anzeigt.

Ich wage nicht zu fragen, tu es aber dennoch: Hast Du unter Tools/Debuggeroptionen/Sprach-Exceptions zufälligerweise noch "Bei Delphi-Exceptions stoppen" aktiv?


jaenicke - Do 22.05.14 06:48

user profile iconmandras hat folgendes geschrieben Zum zitierten Posting springen:
Ich wage nicht zu fragen, tu es aber dennoch: Hast Du unter Tools/Debuggeroptionen/Sprach-Exceptions zufälligerweise noch "Bei Delphi-Exceptions stoppen" aktiv?
Das sollte man auch im Normalfall an lassen, denn sonst erkennt man ja auftretende Fehler ggf. gar nicht...

Die Exception kommt ja auch nur im Debugger, der Endnutzer sieht die Meldung in Delphi nicht. Wenn man ein Programm im Debugger startet, will man aber ja gerade Fehler finden.


ChrisCross - Do 22.05.14 08:10

Mit dem Debugger ist klar, das eine Fehlermeldung angezeigt wird. Wenn ich das Programm ohne Delphi starte, erscheint trotzdem nicht meine Fehlermeldung, sondern die von IdFTP.


jaenicke - Do 22.05.14 09:06

Kannst du bitte einmal einen Screenshot von der Meldung zeigen? Ich weiß im Moment nicht was du siehst und was das für eine Meldung ist.

// EDIT:
Vielleicht hilft on E: TObject do, denn vielleicht wird dort eine Exception ausgelöst, die gar nicht von Exception abgeleitet ist. (Auch wenn das selten vorkommt...)


Narses - Do 22.05.14 10:57

Moin!

Wozu überhaupt die ON-Klausel? Einfach weglassen und das ShowMessage im except-Fall raushauen. :idea: Im Moment willst du doch einen speziellen Fehler gar nicht behandeln, oder? ;)

cu
Narses


ChrisCross - Do 22.05.14 14:08

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:

Wozu überhaupt die ON-Klausel? Einfach weglassen und das ShowMessage im except-Fall raushauen.


Stimmt. Jetzt erscheint trotzdem nicht meine Fehlermeldung und das Programm hängt sich auf und ich erhalte folgenden Meldung:

FTP

// EDIT:

Wenn es eine bessere Lösung gibt, ich wollte eigentlich dann eine andere Anmeldung ausführen, wenn die 1. nicht klappt:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
 try
    FTP1.Host := ''
    FTP1.Username := '';
    FTP1.Password := ''
    FTP1.Connect; 
  except
    FTP1.Host := ''
    FTP1.Username := '';
    FTP1.Password := ''
    FTP1.Connect; 
  end;