Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 953

/ вопрос открыт /

Здравствуйте! Я недавно начал изучать поподробнее компонент idpop3 ... всё вроде понятно но не могу разобраться в одном... хотя это относится ко всем наверно компонентам... хочу у себя в программе реализовать обработку ошибок. Ну вот например:
try
idpop3.connect
except
if E=10060 then showmessage('сбой связи') else showmessage(E);
end;
т.е. E тут это error... вот собственно и вопрос - как правильно оформить в разделе var эту E чтобы можно было выводить сообщения или как-то научить реагировать на эти сообщения программу.
Заранее спасибо!

eclipse Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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

eclipse (статус: Посетитель), 30 марта 2010, 17:29 [#2]:

Ну как-то так и я спросил потому и не знаю как оформить....
отпишитесь пожалуйста поподробнее
DNK

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™

min@y™ (статус: Доктор наук), 30 марта 2010, 20:51 [#5]:

Цитата (Тов. Женька):

Спасибо! Наверно один из немногих участников который МОЖЕТ НОРМАЛЬНО ВСЁ ОБЪЯСНИТЬ!

Да нас ту всего-то человеков 5 или 6... :((
Зайди-ка сюда.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:51
Выполнено за 0.03 сек.