[Delphi] - Przechwytywanie błędów

0

Kiedy np. próbuje się połączyć z hostem który nie istnieje
wyskakuje w MessageBox'sie taki błąd:
Windows socket error: Nieznany host(11001), on API'ASync Lookup'
Jak to przechwycić, zablokować, a powyższy text wstawić np. do Memo ?--__________________________________
Pozdrawiam...
piechnat

0

A próbowałeś try except?--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Dryobates napisał:
A próbowałeś try except?

tak próbowałem, ale nie wiem jak przy pomocy tego przechwycić
ten text wyświetlić w Memo, bo nie chodzi mi tylko o zablokowanie
ale także o poinformowanie jaki błąd wyskoczył.

i Od razu mówie że wiem o istnieniu w ClientSockecie zdarzenia onError
ale ono daje do dypozycji kod błędu, a mi zależy na tym komunikacie {glowa}

--


Pozdrawiam...
piechnat

0

To tego raczej nie zrobisz. Nie da się chyba uzyskać nazwy stałej znając jej wartość. Musisz zrobić dłuuugą instrukcję case.---------------------------
Delphi 6

Pozdrówka

0

Mniej wiecej tak [ w OnError]

case ErrorCode of
11001 : Memo.Lines.Add('Windows socket error: Nieznany host(11001), on API''ASync Lookup');

  • inne numerki errorkow i ich opisy do memo :)
    end;
    ErrorCode:=0; *blokuje wyskoczenie okienka
    --W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.
0

&gt case ErrorCode of
&gt 11001 : Memo.Lines.Add('Windows socket error: Nieznany host(11001), on API''ASync Lookup');
&gt * inne numerki errorkow i ich opisy do memo :)
&gt end;
&gt ErrorCode:=0; *blokuje wyskoczenie okienka

thx, a nie wiesz może skąd wziąć listę takich najczęściej
występujących błędów, chodzi mi o słowne opisy ?--__________________________________
Pozdrawiam...
piechnat

0

piechnat napisał:
&gtthx, a nie wiesz może skąd wziąć listę takich najczęściej
&gtwystępujących błędów, chodzi mi o słowne opisy ?

To juz trzeba metoda sprawdzania chyba ze ktos gdzies ma tak liste, ale niewiem. mam gdzies zapisane klika [ze 4-5 :)] bledow ale to bym musial mocno poszukac zeby znalezc hmm... --W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.

0

kiedys chyba Imperior podawal linka:
http://216.26.168.92/vbapi/ref/other/winsockerror.html---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

Jeżeli chcesz przechwycić komunikat, a nie tylko kod to według dokumentacji WindowsSDK musisz użyć funkcji:
GetExceptionInformation

Ale tu jest mały haczyk. Delphi nie zapewnia obsługi tej funkcji (choć samo korzysta z tego, bo podaje komunikat błędu).

Zadanie: dowiedzieć się w jakim pliku DLL i pod jaką nazwą występuje ta funkcja.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Dryobates napisał:
A próbowałeś try except?

Nie wiem czy wiesz, ale try...except wylapie ten blad wylacznie w win 9x (98/me). W 2000 oraz XP nie zadziala (ja zrobilem ApplicationEvents i tam zdarzenie OnException, ktore sie tym zajmuje)

0

ikari napisał:
Nie wiem czy wiesz, ale try...except wylapie ten blad wylacznie w win 9x (98/me). W 2000 oraz XP nie zadziala (ja zrobilem ApplicationEvents i tam zdarzenie OnException, ktore sie tym zajmuje)

Chodzi ci dokładnie o ten błąd, czy o błędy w ogóle?

Bo błędy ta konstrukcja u mnie przechwytuje pod WinXP. Jeżeli natomiast chodzi o ten błąd to w takim razie GetExceptionInformation też nie zadziała, bo Delphi wykorzystuje to samo do przechwytywania.
--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

W moim przypadku akurat to byl chyba ten konkretny blad, a w kazdym razie blad wyskakujacy kiedy gniazdko sie laczy jak nie ma polaczenia z netem.

0

Poczytaj o obsłudze błędów przez aplikacje (szczególnie na dole strony). http://4programmers.net/Delphi/Artykuły/Wyjątki

Czy wie ktoś jak zrobić coś podobnego dla wątków?

0

Ok dzięki za odpowiedź
w SPACJA końcu dokończe projekt [soczek]

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