Entwickler-Ecke

Sonstiges (Delphi) - Debugger - Exceptions ausschalten [gelöst]


MrSaint - So 09.11.03 11:46
Titel: Debugger - Exceptions ausschalten [gelöst]
Hi!

Hab mal was von ner Möglichkeit gehört, beim Delphi-Debugger bestimmte Exception-Klassen zu definieren, bei denen er das Programm dann nicht unterbricht (also so, wie beim fertigen Programm die try..except bzw. try..finally Blöcke wirken)... und die Option such ich grad irgendwie vergebens :( kann mir jemand helfen? wo iss'n die? oder gibts die gar net?
Ich will die "Connection Closed Gracefully"s von indy abfangen... die nerven!



MrSaint


barfuesser - Mo 10.11.03 10:47

Tools->Debugger-Optionen->Sprach-Exceptions

barfuesser


MrSaint - Mo 10.11.03 14:58

aaahhh! Super! Danke!!!!


:D :D :D



MrSaint


Amun - Mi 08.09.04 13:14
Titel: Re: Debugger - Exceptions ausschalten [gelöst]
MrSaint hat folgendes geschrieben:

(also so, wie beim fertigen Programm die try..except bzw. try..finally Blöcke wirken
MrSaint


was muss ich denn da bei Sprach-Exeptions einfügen???


UGrohne - Mi 08.09.04 13:28

Versuchs mal mit EIDConnClosedGraceFully, so stehts bei mir im Delphi aber schon automatisch drin.


Amun - Mi 08.09.04 13:35

nope so gehts leider net...


UGrohne - Mi 08.09.04 13:40

Laut Indy-Hilfe sollte man auch

EIdSilentException

ignorieren, dazu gehört Closed Gracefully nämlich. Probiers mal damit


Amun - Mi 08.09.04 13:46

http://www.geocities.com/dark_pharao/BildaZ/METZEL_2.JPG

so hab ich es...

ist da noch was falsch ich habe bei EIdSilentException
auch schon mal den haken raus genommen auch kein erfolg...

pls help...

Moderiert von user profile iconChristian S.: Img- in Url-Tags geändert


UGrohne - Mi 08.09.04 13:47

Naja, Du solltest natürlich auch die Integrierte Fehlersuche aktivieren *g*


Amun - Mi 08.09.04 13:49

ja die hatte ich auch schon drin !

bringt alles nichts...
kommt immer wieder dieser fehler...


Amun - Mi 08.09.04 14:17

IdFTP1.List(DirectoryListBox1.Items);

ich will die ordner und so in einer listbox ausgeben...

so ...



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
procedure TForm1.Button1Click(Sender: TObject);
begin
   IdFTP1.Connect();

end;

procedure TForm1.IdFTP1Connected(Sender: TObject);
begin
  ShowMessage('Connect');
   IdFTP1.List(DirectoryListBox1.Items); 
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
IdFTP1.Quit;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Close;
end;

procedure TForm1.DirectoryListBox1Change(Sender: TObject);
begin

end;


wenn ich diesen befehl IdFTP1.List(DirectoryListBox1.Items);
wo anders hin mache dann geht gar nichts mehr nachdem ich auf verbinden geklickt habe und nach ca 12 sekunden kommt der gleiche fehler...
sonst kommt er immer sofort...
Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt.


UGrohne - Do 09.09.04 10:43

Du hast Username, Passwort, Host und Port korrekt angegeben? Ist der Server wirklich erreichbar (Test mit anderem Client). Prüfe vor dem Ausführen eines Befehls auf dem Server auch, ob er wirklich connected ist (IdFTP1.Connected)


Amun - Do 09.09.04 11:16

ja er gibt mir ne nachtricht das er connectet ist!
hab ich so eingefügt

ganz simpel showMassage('connected')

und direkt danach kommt die fehlermeldung!


PW IP Proxy benutzer ist alles richtig...


Amun - Do 09.09.04 11:20

procedure TForm1.IdFTP1Connected(Sender: TObject);
begin
ShowMessage('Connect');

end;

und die zeigt er mir noch und dann kommt der fehler dann kan ja nichts falsch sein
an der IP PW usw oder?


MrSaint - Do 09.09.04 11:28

probiers mal so:


Delphi-Quelltext
1:
2:
3:
4:
if IdFTP1.Connected then
  IdFTP1.List(DirectoryListBox1.Items)
else
  showmessage('Not connected :(');



MrSaint


Amun - Do 09.09.04 11:46

dann kommt sofort die nachricht

connection closed Gracefully.....



**** man das kanns doch net sein!

und wie du oben schon entnehmen kannst habe ich bei sprach-exceptions auch schon
die wichtigen sachen drinne


Amun - Do 09.09.04 11:51


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   IdFTP1.Connect();

end;

procedure TForm1.IdFTP1Connected(Sender: TObject);
begin
  if IdFTP1.Connected then
  IdFTP1.List(DirectoryListBox1.Items)
else
  showmessage('Not connected ');


end;

procedure TForm1.Button2Click(Sender: TObject);
begin
IdFTP1.Quit;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Close;
end;

end.


so meinst das doch oder?


MrSaint - Do 09.09.04 15:11

Also ich habs grad vrsucht nachzubauen, aber leider spinnt das hier alles komplett.. der liefert mit "FTP Server. Server ready" als Fehler zurück und ich bekomm ne Exception... naja, egal, net so wichtig..
Auf jeden fall sollte es so gehen, wie du das da hast.

Für das Connction closed gracefully lies mal hier: http://www.swissdelphicenter.ch/de/showarticle.php?id=1 laut dem musst du beim Debugger _nur_ das EIdSilentException einbauen, nicht aber auch noch das EIdConnClosedGracefully!

Wo bekommst du denn die Exception? Ich kann mich nämlich schwach dran erinnern, dass ich auch mal ne Exception im Indy-Code bekommen hab (ich glaub es war sogar ne connection closed gracefully).. da stand dann komentar dabei, was man tun sollte (alsi im indy-code!)... einfach mal bissl guggn...


MrSaint


Amun - Fr 10.09.04 09:21

danke habe die lösung von wem bekommen aber wirklich dickes respekt
das ihr so hartnäckig an mir dran geblieben seit!!!

ich denke ich werde noch öffters hier sein!

Mfg Amun


UGrohne - Fr 10.09.04 09:29

Schreib doch dann bitte auch noch, wie Du es gelöst hast


Amun - Fr 10.09.04 10:20

Damit sollte es in dein Beispiel Projekt funktionieren:

****************************************************

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
procedure TForm1.BitBtn2Click(Sender: TObject);
var LS: TStringList;
begin
  //Was wrd benötigt:
  //Indy 9
  //IdFTP1, TListBox mit den Namen DirectoryListBox1, Button (TBitBtn)

  //Eine String-Liste erzeugen
  LS := TStringList.Create;
  try
    //Einstellung für den FTP-Server
    IdFTP1.Host := 'Die Ip wa';
    IdFTP1.Password := 'das PW';
    IdFTP1.Username := 'Der Nutzer ^^';
    IdFTP1.Port := 21;

    //Einstellung für den Proxy-Server
    IdFTP1.ProxySettings.Host := '192.168.20.19';
    IdFTP1.ProxySettings.Port := 21;
    IdFTP1.ProxySettings.ProxyType := fpcmUserSite;

    //Verbindung herstellen
    IdFTP1.Connect;

    //Form1.IdFTP1.ChangeDir('/');  //geht auch ohne
    //List Box löschen
    Form1.DirectoryListBox1.Items.Clear;

    //Liste in LS eintragen
    Form1.IdFTP1.List(LS);

    //DirectoryListBox mit dem Inhalt der LS füllen
    Form1.DirectoryListBox1.Items.Assign(LS);
  finally
    //LS wieder freigeben
    LS.Free;
  end;
end;