Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

Обработка ошибок Indy. собственно как поймать?   Найти похожие ветки 

 
Виталий Юрьевич   (2006-08-19 23:08) [0]

Добрый день.
Имеется программа, использующая idSMTP компонент...
хотелось бы вытащить больше информативности при отправке по двум пунктам:
1)информацию вида - подключились, шлём, отключились.
status в принципе пока использую, но там же всё по английски.. может есть какие коды чтоли :) Как выход можно  сравнивать строки "resolving host" на "получение хоста" вроде...

2) и основное - обработка исключений.. как я не мучался c except"ом всяко разно.. так и не получилось..EIdSockedError делфи говорит что не знает такой.. вот и нужно на конкретную ошибку делать конкретные действия - на ошибку авторизации сказать что пароль не тот.. и т.д.
а то вроде exception вроде есть, и тот который надо, но идёт он "от имени делфи"... и пишет нормально "host not found"  "authentification failed"....  а как же всё это в человеческий вид сделать...

а пока и сижу на
except
message("ВСЁ. хана. что-то не так...")

:)

заранее благодарю за помощь..


 
Пусик ©   (2006-08-19 23:09) [1]


> Виталий Юрьевич   (19.08.06 23:08) 


С Indy очень важно, какая версия Indy используется.


 
Виталий Юрьевич   (2006-08-19 23:13) [2]

Indy 10, что в комплекте с D2005


 
Виталий Юрьевич ©   (2006-08-20 15:29) [3]

пока делаю так:

except on e : EIdException
do begin
messagedlg("Произошла ошибка - "+e.Message,mtError,[mbOK],0);
читабельно хотябы..

делфе класс EIdException известен.. а остальное почему то не известно...


 
Пусик ©   (2006-08-20 15:48) [4]

А где, код, ошибки в котором обработать надо?


 
Сергей М. ©   (2006-08-20 15:58) [5]


> а остальное почему то не известно


оно и тебе не известно.
Иначе бы не устраивал здесь клоунаду, а привел бы конкретный класс исключения.


 
Пусик ©   (2006-08-20 16:19) [6]


> Виталий Юрьевич ©   (20.08.06 15:29) [3]


Та вроде бы достаточно информации об ошибке и в таком случае:

 DispLog("Подключение к серверу...");
 try
   idSmtp1.Connect;
   DispLog("Подключение к серверу... Ok");
 except
   on E: Exception do DispLog(E.Message);
 end;

 if idSmtp1.Connected then
 try
   DispLog("Отправка письма...");
   idSmtp1.Send(IdM);
   DispLog("Отправка письма... Ok");
 except
   on E: Exception do DispLog(E.Message);
 end;
 if idSmtp1.Connected then idSmtp1.Disconnect;


 
Виталий Юрьевич ©   (2006-08-22 21:35) [7]

Пусик, да собственно всё надо обработать.. если не произошёл connect, то почему (нет инета, непраилый сервер, неправильный логин, неправильный пароль и т.п.)... потому и просто обработать в связке try connect except нельзя.. поскольку будет ошибка просто что не подключился - а нужно причину, почему именно не подключился..

Сергей М. в документации указано куча исключений, но делфи почему то не хочет их "ловить". например, несколько из тех, которые я ЗНАЮ.

EIdSockedError — Ошибка сокета.
EIdSocksAutnError — Ошибка идентификации пользователя на Socks-прокси.
EIdDnsResolverError —Ошибка класса TIdDnsResolver.
EIdInvalidSocked —Неожиданное закрытие соединения.
EIdMaxLoginAttempt — потомок класса EIdLoginException. Исчерпан лимит подключений.
...
и т.д.


 
Пусик ©   (2006-08-22 23:10) [8]

В сообщении Exception(а точнее - в коде ошибки) есть вся исчерпывающая информация.


 
Виталий Юрьевич ©   (2006-08-23 19:35) [9]

обидно блин.. перенесли в "начинающим"... хотя я на делфи около 7 лет работаю... за деньги...
ну не натыкался я ранее на indy..
с проблемой разобрался.. сам... думал, тут быстрее ответы дадут... а тут только что-то типа "ты тупой иди отсюда здесь тебе не место".... очень жаль..



Страницы: 1 вся ветка

Текущий архив: 2006.09.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
11-1132487236
homm
2005-11-20 14:47
2006.09.10
Инициализация объектов


2-1156332390
GeLLeR
2006-08-23 15:26
2006.09.10
Добавление вложенных папок в плейлист


1-1153902051
Wolferio
2006-07-26 12:20
2006.09.10
Сравнить две папки


6-1145631768
M@D
2006-04-21 19:02
2006.09.10
Error (INDY)


1-1153901887
TUser
2006-07-26 12:18
2006.09.10
Цикл for, так нелюбимый компилятором