Текущий архив: 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.46 MB
Время: 0.04 c