|
Вопрос # 3 953/ вопрос открыт / |
|
Здравствуйте! Я недавно начал изучать поподробнее компонент idpop3 ... всё вроде понятно но не могу разобраться в одном... хотя это относится ко всем наверно компонентам... хочу у себя в программе реализовать обработку ошибок. Ну вот например:
try
idpop3.connect
except
if E=10060 then showmessage('сбой связи') else showmessage(E);
end;
т.е. E тут это error... вот собственно и вопрос - как правильно оформить в разделе var эту E чтобы можно было выводить сообщения или как-то научить реагировать на эти сообщения программу.
Заранее спасибо!
 |
Вопрос задал: eclipse (статус: Посетитель)
Вопрос отправлен: 30 марта 2010, 17:10
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Тов. Женька
Здравствуйте, eclipse!
Как-то так
try
...
except on E:SomeError do ShowMessage(E.Msg, ...)...;
end;
 |
Ответ отправил: Тов. Женька (статус: 3-ий класс)
Время отправки: 30 марта 2010, 17:20
|
Ответ #2. Отвечает эксперт: Вадим К
Здравствуйте, eclipse!
Обрабатка через
try
...
except
on E:EidSocketError do
ShowMessage('Соединение разорвано !');
on E:EidTFTPException do
ShowMessage('Истек таймаут фтп соединения!');
end;
как написали выше, а список возможных ошибок можно найти здесь
http://www.indyproject.org/docsite/html/frames.html?frmname=topic&frmfile=EIdSocketError.html
(смотреть слева все описания классов, которые начинаются на EId...
Также можно воспользоваться автодополнением и написав только Eid , нажать Ctrl+пробел, выбрать нужное.
Множество с этих ошибок имеют очень "кричащие имена".
Нужно помнить, что есть ошибки более общие, а есть "уточненные". EException является "предком" всех ошибок, поэтому, если поставить обработчик для него самым первым, то он и будет обрабатывать все.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 30 марта 2010, 18:05
Оценка за ответ: 5
Комментарий к оценке: Спасибо! Наверно один из немногих участников который МОЖЕТ НОРМАЛЬНО ВСЁ ОБЪЯСНИТЬ!
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 30 марта 2010, 20:51; участников в обсуждении: 4.
|
Тов. Женька (статус: 3-ий класс), 30 марта 2010, 17:21 [#1]:
Вместо SomeError вписать нужный класс ошибки
|
|
eclipse (статус: Посетитель), 30 марта 2010, 17:29 [#2]:
Ну как-то так и я спросил потому и не знаю как оформить....
отпишитесь пожалуйста поподробнее
|
|
DNK (статус: Студент), 30 марта 2010, 18:02 [#3]:
eclipse:Подучи матчасть глава исключенния. В подавляющем большинстве книг это всё разобрано по косточкам. try
{исполняемый код};
except
on Exceptionl:{класс исключения 1} do {код, исполняемый в случае возникновения ошибки 1};
on Exception2:{класс исключения 2} do {код, исполняемый в случае возникновения ошибки 2};
else
{код, обработчик всех не перехваченных ранее ошибок};
end;
"Digital Networked Knight"
|
|
Тов. Женька (статус: 3-ий класс), 30 марта 2010, 18:08 [#4]:
Вообще-то ты спросил, как оформить Е. Так вот, никак.
Когда появляется сообщение об ошибке, возьми ручку и листочек, впиши на него название класса, обозначенного в этом сообщении (в первой же строке), а потом точно воспроизведи это слово в коде. Вот, собственно.
|
|
min@y™ (статус: Доктор наук), 30 марта 2010, 20:51 [#5]:
Цитата (Тов. Женька):
Спасибо! Наверно один из немногих участников который МОЖЕТ НОРМАЛЬНО ВСЁ ОБЪЯСНИТЬ!
Да нас ту всего-то человеков 5 или 6... (
Зайди-ка сюда.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|