błąd mimo except

0

Witam! Mam taką procedurke i nie wiem, co zrobić, aby nie wywalało błędu...."takiego systemowego ;-)". Chcę, że jeśliby był np. problem z połączeniem itp. to żeby wywalał 'błąd w połączeniu', a nie coś innego. Zastosowałem "except" ale teraz mi 2 błędy wywala :-8 Co zmienić w kodzie? Z góry thx for odp.

procedure TfrmPing.btnPingClick(Sender: TObject);
var
i: integer;
begin
ICMP.OnReply := ICMPReply;
ICMP.ReceiveTimeout := 1000;
btnPing.Enabled := False;
try
ICMP.Host := edtHost.Text;
for i := 1 to 4 do begin
ICMP.Ping;
Application.ProcessMessages;
//Sleep(1000);
end;

except //////////////////////tutaj mam except'a ;)

showmessage('błąd w połączeniu');
end;
{finally}
btnPing.Enabled := True;
end;

0

bo stosować należy konstrukcję try..except a nie samo except :)

0

No dobra...ale to też nie działa, jak mam WYłączonego neta.

procedure TfrmPing.btnPingClick(Sender: TObject);
var
i: integer;
begin
try

ICMP.OnReply := ICMPReply;
ICMP.ReceiveTimeout := 1000;
btnPing.Enabled := False;

ICMP.Host := edtHost.Text;

for i := 1 to 1 do begin
ICMP.Ping;
Application.ProcessMessages;
//Sleep(1000);
end;

except
showmessage('błąd w połączeniu');

btnPing.Enabled := True;
end;
end;

0

A odpalasz to z poziomu delphi czy windows?
Jeśli delphi - musisz pobawić się opcjami debuggera (tools-->debugger options). Chyba wyłaczenie "stop on delphi exceptions" na karcie "language exceptions" powinno pomóc.

0

Jest tam Try i Except

Please, no more stupid questions...
(nie bierz tego do siebie)

Snowak [cygaro]

0

Application.OnException:=.. czy jakoś tak...

0

"Application.OnException:=.. czy jakoś tak..."

Tzn jak? :] Bo np. jak piszę
Application.OnException:=showmessage('blad');

to error ;-)

0

Jaa, weż helpa otwórz kiedyś... Tam WSZYSTKO niemal jest...
Poza tym - jak piszesz Application.OnE (tyle chyba wystarczy) to pozostanie ci na tej rozwijalnej liście "property OnException: TExceptionEvent"...

0

Tak jak Sasik zauważył, ważne, czy odpalasz spod Delphi, czy skompilowanego exeka.

Bo jeśli odpalasz spod Delphi to konstrukcja try..except nie zadziała.

0

Jeśli chodzi o TSerwerSocket i TClientSocket, to mają one własne zdarzenie OnError. Wystarczy w takim zdarzeniu wpisać errorcode := 0 i ewentualnie wyśiwtlić komunikat.

0

Tak jak Sasik zauważył, ważne, czy odpalasz spod Delphi, czy skompilowanego exeka.

Bo jeśli odpalasz spod Delphi to konstrukcja try..except nie zadziała.

zadziala (nie mowie tu konkretnie o tym kodzie), z tym ze wczesniej wywali "blad w debugerze", potem pokaze sie obsluzony komunikat.

proponuje zajrzec pod F1

[dop] masz racje, ale domyslnie jest to wlaczone

0

Chyba że się wyłączy odpowiednie opcje w debbugerze (patrz moja pierwsza wypowiedź w tym temacie).

0

Jejku! Ludzie!
Przeca po try się daje end lub except (ewentualnie finally), a z tego co widze, to Ty ma try ... end ... except ... end

0

Tak jak Sasik zauważył, ważne, czy odpalasz spod Delphi, czy skompilowanego exeka.

Bo jeśli odpalasz spod Delphi to konstrukcja try..except nie zadziała.

zadziala (nie mowie tu konkretnie o tym kodzie), z tym ze wczesniej wywali "blad w debugerze", potem pokaze sie obsluzony komunikat.

proponuje zajrzec pod F1

[dop] masz racje, ale domyslnie jest to wlaczone

1 użytkowników online, w tym zalogowanych: 0, gości: 1