Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Try--Except Anweisung (https://www.delphipraxis.net/117545-try-except-anweisung.html)

Counter909 20. Jul 2008 14:55


Try--Except Anweisung
 
Hallo,



also ich möchte ein simple Funktion einbauen, bei der ich mit einem anderen pC chatten kann. Dazu muss ich mich ja mit ihm verbinden, was auch problemlos funktioniert, wenn er den server logischerweise gestartet hat :-D

Ich als Client möchte ja nun zu ihm connecten, doch wenn er den Host noch nicht gestartet hat, tritt ein Axynchron-Fehler auf, den ich mit einer try except anweisung umgehen möchte

mein source:

Delphi-Quellcode:
begin
try
 clientsocket1.Address:= edit1.Text;
 clientsocket1.port := strtoint(edit2.Text);
 clientsocket1.Active:= true;
 if clientsocket1.Active = true then button1.Font.Color:= cllime;
except
 showmessage('Error!')
end;
eigentlich ist es doch so, wenn er keine möglichkeit hat den host zu finden, bricht er ab und führt die exception aus oder ?


mfg
counter

mkinzler 20. Jul 2008 14:56

Re: Try--Except Anweisung
 
Du musst natürlich noch die Exception abfragen. Notfalls alle

p0w3r5tr34m3r 20. Jul 2008 14:58

Re: Try--Except Anweisung
 
Delphi-Quellcode:
try
  ...
except
  on e: exception do
    showmessage('Error!'+#13#10#13#10+e.Message);
end;

Counter909 20. Jul 2008 15:03

Re: Try--Except Anweisung
 
hmmmm



also wenn ich zum beispiel das genauso mache, wie:

Delphi-Quellcode:
try
  ...
except
  on e: exception do
    showmessage('Error!'+#13#10#13#10+e.Message);
end;

dann kommt genau der gleiche Fehler

http://img389.imageshack.us/img389/5...7201605qu7.jpg

mkinzler 20. Jul 2008 15:04

Re: Try--Except Anweisung
 
Aber nur innerhalb der IDE.

Counter909 20. Jul 2008 15:19

Re: Try--Except Anweisung
 
hm leider kommt der fehler auch außererhalb :-(

und nicht das, was ich schreibe...naja ich werd nochmal schauen

Muetze1 20. Jul 2008 16:11

Re: Try--Except Anweisung
 
Moin!

Die Sockets sind nicht die Indies und sind somit nicht mit solchen Exception Handlern benutzbar.

Nun noch ein paar Hinweise:

1. Wenn du Active auf true setzt, dann ist die Abfrage danach völlig unnütz, da die Sockets erstmal die Verbindung aufbauen und das dauert länger als die millionstel Sekunden zwischen der Zuweisung und der Abfrage. Die Sockets arbeiten auf Basis von Events und geben dir Bescheid, wenn die Verbindung aufgebaut werden konnte oder halt auch nicht. Siehe dazu die Eventhandler (Ereignisse) an, also OnConnect, OnError, etc.

2. Die Exceptions von den Sockets werden nicht aus deren Threads synchronisiert, um aber trotzdem die Fehler behandeln zu können gibt es den o.g. OnError Ereignishandler. Dort kannst du dir eine eigene entsprechende Behandlung für den Fehler schreiben und auch auf Wunsch die Ausgabe der Exception unterdrücken (ErrorCode := 0, siehe Hilfe).

MfG
Muetze1

Counter909 20. Jul 2008 16:48

Re: Try--Except Anweisung
 
vielen dank, das hat genauso funktioniert wie du es beschrieben hast.
Mit deiner HIlfe bin ich auch nochmal auf diese Seite hier gestoßen


http://www.informatik-treff.de/mater...t/kontakt.html


falls andere noch probleme habe, da ist das auch nochmal alles geschildert


vielen dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz