Eroare la manipularea indiei

Eroare de manipulare Indy. De fapt, cum să prind?

Bună ziua.
Există un program care folosește componenta idSMTP.
Aș dori să obțin mai multe informații atunci când trimit două elemente:






1) informații de tipul celor legate, legate, deconectate.
statutul în principiu, până acum am folosit, dar totul este în engleză. poate mânca ceea ce cheers coduri :) Ca o ieșire este posibil # xA0; comparați liniile "rezolvarea gazdei" la "recepționarea gazdei" cum ar fi.

dar acum stau pe loc
cu excepția
mesaj ("Totul, Khan, ceva e în neregulă.")

Vă mulțumesc în avans pentru ajutor.


> Vitaly Yurievich (19.08.2006 23:08)

Cu Indy, este foarte important ce versiune de Indy este folosită.

cu excepția e. EIdException
începeți
messagedlg ("A apărut o eroare -" + e.Message, mtError, [mbOK], 0);
Citiți cel puțin ..

Clasa EIdException este cunoscută. iar restul este necunoscut.

Și unde, codul, care erori trebuie procesate?


> iar restul, din anumite motive, nu se cunoaște

și nu știți.
În caz contrar, nu aș vrea să fac clovni aici, ci ar duce la o clasă concretă de excludere.

Aceasta pare să aibă suficiente informații despre eroare și în acest caz:







# xA0; DispLog ("Conectarea la server");
# xA0; încercați
# xA0; # xA0; idSmtp1.Connect;
# xA0; # xA0; DispLog ("Conectarea la server, Ok");
# xA0; cu excepția
# xA0; # xA0; pe E: Excepție face DispLog (E.Message);
# xA0; sfârșitul;

# xA0; dacă idSmtp1.Connected then
# xA0; încercați
# xA0; # xA0; DispLog ("Trimiteți e-mail.");
# xA0; # xA0; idSmtp1.Send (IdM);
# xA0; # xA0; DispLog ("Trimiterea e-mailului. Ok");
# xA0; cu excepția
# xA0; # xA0; pe E: Excepție face DispLog (E.Message);
# xA0; sfârșitul;
# xA0; dacă idSmtp1.Connected apoi idSmtp1.Disconnect;

Pusik, da, de fapt, totul trebuie procesat. dacă nu există nicio conexiune, de ce (nici internet, server rău, conectare greșită, parolă greșită, etc.). deoarece este ușor de procesat într-un pachet încercați să vă conectați, cu excepția faptului că este imposibil. pentru că va exista o greșeală doar că nu sa conectat - dar ai nevoie de un motiv pentru care nu sa conectat.

Serghei M. în documentație a indicat o mulțime de excepții, dar din anumite motive, de ce nu vrea să "prindă". de exemplu, mai multe dintre cele pe care le cunosc.

EIdSockedError - O eroare de soclu.
EIdSocksAutnError - Eroare de autentificare a utilizatorilor pe proxy-urile Socks.
Eroare de clasă EIdDnsResolverError-TIdDnsResolver.
EIdInvalidSocked - Închidere neașteptată a conexiunii.
EIdMaxLoginAttempt este un copil din clasa EIdLoginException. Limita de conectare a fost depășită.
.
și așa mai departe.

În mesajul Excepție (sau mai degrabă - în codul de eroare) există toate informațiile exhaustive.

insulte pancake. sa mutat la "începători". deși am lucrat la Delphi timp de aproximativ 7 ani. pentru bani.
Ei bine, nu am întâlnit un ind ..
cu problema găsită. el însuși. M-am gândit că răspunsurile ar fi mai repede aici. și apoi ceva de genul "esti proastă, pleacă de aici nu este locul tău". foarte rău ..

Memorie: 0,74 MB
Durată: 0,046 secunde







Trimiteți-le prietenilor: