IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @412
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Chcete darček pre svoje dieťa

Odpovedzte na otázky a vyhrajte! LEGO duplo 2 krát deňne do konca mesiaca www.duplo.lego.com

Sprostredkovávajte hypotéky

Začnite sprostredkovávať hypotéky s úspešným hypotekárnym centrom! www.SprostredkovanieUverov.sk

Spoločnosti Online s.r.o.

Ponúkame čisté spoločnosti. Obchodný register vybavíme za vás! www.spolecnostionline.cz

NIVEA proti celulitíde

Rad Q10 plus pre viditeľne pevnú a hladkú pokožku už za dva týždne. www.NIVEA.sk

Zhoď nadbytočné kilogramy

Rýchlo. Jednoducho. Trvalo. Za pomoci naturálnych produktov ! www.janinblog.com

[Delphi] odchytenie vynimky pri clientsocket

Zaslať odpoveď
AutorSpráva
ha2
Užívateľ
Užívateľ

Založený: 21.12.2008
Príspevky: 114

PríspevokZaslal: So 23.01.10 15:46Odpovedať s citátomNávrat hore

Pripajam sa na server pomocou komponenty clientsocket. Potrebujem odchytit vynimku ked server nieje dostupny (vobec neexistuje). Je tam udalost onError, kde si dam napr.

kód:
 memo1.lines.add('zly server');


ale aj tak vyhodi chybu o asyn. chybe. A to nechcem. skusal som pomocou try exception ale neviem to odstranit.
V skratke, chem upozornovat na chybu sam v aplikacii nie cez win chybove hlasenia.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: So 23.01.10 16:06Odpovedať s citátomNávrat hore

Pokiaľ viem, tak chyby od debuggeru vybehujú, iba pokiaľ program spúšťaš v debuggeri (teda keď ho ladíš, spúšťaš priamo v Delphi). Neviem, či si program skúšal spúšťať priamo z miesta na disku, kde bol vytvorený. Ak nie, tak to skús (čiže ho spusti mimo Delphi, ako obyčajnú aplikáciu) a ak chybovú správu aj tak zobrazí, tak skús toto:

kód:
try

  // problémové miesto v kóde

except

  On E: Exception do memo1.lines.add('zly server');

end;
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
ha2
Užívateľ
Užívateľ

Založený: 21.12.2008
Príspevky: 114

PríspevokZaslal: So 23.01.10 16:35Odpovedať s citátomNávrat hore

skusal som aj tento zapis predtym len asi neosetrujem spravny kod.
mam
kód:
procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Host:=server;
clientsocket1.Port:=port;
clientsocket1.active:=true;
end;


dalej mam uz iba onconnect a onread. A ked osetrim button tak nic neodchyti
..a skusal som to aj mimo delphi samozrejme
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: So 23.01.10 17:22Odpovedať s citátomNávrat hore

Tak to potom asi naozaj ošetruješ nesprávny kód. Skús dať blok try/except na všetky procedúry, čiže:

kód:
procedure XXX;
begin

try
  //telo procedury
except
  on E: Exception do ShowMessage('1');
end;

end;


s tým, že do ShowMessage daj vždy iné číslo, napr pre ButtonClick jdenotku, OnConnect dvojku a pre OnRead trojku. Potom budeš vedieť kde je chyba. Nie je to nejaký extra spôsob, ale keďže nemám tento komponent, nedokážem ti inakšie pomôcť. Môžeš sa ešte pozrieť na tento príklad a upraviť svoj kód podľa neho.

// Mimochodom, debugger ti nazastaví s kurzorom na mieste, kde je chyba?
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
ha2
Užívateľ
Užívateľ

Založený: 21.12.2008
Príspevky: 114

PríspevokZaslal: So 23.01.10 22:47Odpovedať s citátomNávrat hore

nie debuger mi neskoci na riadok s chybou pretoze chyba nenastala v mojom kode ale v komponente. kedze sa napaja na neexistujuci server, alebo ak simulujem vypadok netu tak to hodi tiez error. Skusal som vsade osetrit + showmessage a je jak som predpokladal. Tu chybovu spravu vyvolava telo onError procedury

kód:
procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
showmessage('onError');
end;


sucasne s hlasenim o chybe nabehne sprava "onError". Je to procedura na urcenie co ma program robit pri chybe, to je pekne ale neviem prist nato ako to hlasenie odstranit, a okrem toho ten skaredy windowsacky "brmmmm" zvuk pri chybe

EDIT:

Vyriesene.
kód:
procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
ErrorCode := 0;
end;


strasne tazke .... ale napadne cloveka?
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd