| 
| 
 | Вопрос # 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |