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