Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2009, 19:27   #1
HTL
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 77
По умолчанию 404 ошибка в IdHTTP

Как избавится от масаги при 404 ошибки в IdHTTP?

Delphi 7
Indy 10.5.6
HTL вне форума Ответить с цитированием
Старый 16.08.2009, 19:58   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
try 
 idHTTP1.Get(<site>);
except
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.08.2009, 20:05   #3
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Самому ловить исключение с помощью try exсept end.
Пример:
Код:
  try
    IdHTTP1.Get(...);
  except
    // самому обрабатывать исключение или ничего не делать.
  end;
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 16.08.2009, 20:27   #4
HTL
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 77
По умолчанию

Я так и делаю:

Код:
try
RichEdit1.Lines.Text := UTF8ToAnsi(IdHTTP1.Get(MEMO1.LINES[0]));
except
ShowMessage(123);
end;
HTL вне форума Ответить с цитированием
Старый 16.08.2009, 21:46   #5
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от HTL Посмотреть сообщение
Я так и делаю:

Код:
try
RichEdit1.Lines.Text := UTF8ToAnsi(IdHTTP1.Get(MEMO1.LINES[0]));
except
ShowMessage(123);
end;
В первых... Не понятен смысл этого поста (суть вопроса)
Во вторых ошибка тут: ShowMessage('123'); (надо в ковычках)(в случае если это переменная то она не должна начинатся с цифр)
В третих в случае если не срабатывает try...except...end; то нужно запускать не из под компилятора делфи (так как был такой баг у меня именно с idHTTP)(заголовки от idHTTP не принимал и не знаю точно что у вас, но на будущее советую не упускать этот вариант если работаешь try...except+idHTTP)

Последний раз редактировалось zotox; 16.08.2009 в 21:50.
zotox вне форума Ответить с цитированием
Старый 17.08.2009, 13:54   #6
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
и зачем повторять?
Я не повторял, Пепел Феникса опередил меня с ответом.
Так что, за что минус в репутацию???

По теме:
Цитата:
Как избавится от масаги при 404 ошибки в IdHTTP?
HTL
1. в твоем коде сообщение '123' будет всегда выводиться при возникновении исключения.
Если хочешь от него избавиться - убери ShowMessage(123);

2. Если под мессагой ты имеешь ввиду сообщение от debugerr'a, при запуске приложения из IDE, то можешь его отключить.
Для этого надо выполнить команду Tools | Debugger Options и на странице Language Exceptions окна настройки отладчика выключить опцию Stop On Delphi Exceptions.

3. Если ты хочешь обрабатывать ошибки по кодам, то лови исключения соответствующих типов:
Код:
 
  try
    IdHTTP1.Get('...');
  except
    on se: EIdSocketError do begin
      ShowMessage(se.Message);
      ShowMessage(IntToStr(se.LastError));
    end;

    on pe: EIdHTTPProtocolException do begin
      ShowMessage(pe.Message);
      ShowMessage(IntToStr(pe.ReplyErrorCode));
    end;

    on e: Exception do ShowMessage(e.Message);
  end;
Например, если хочешь, чтобы не выводилось сообщения только при ошибке 404, то код будет такой:
Код:
  try
    IdHTTP1.Get('...');
  except
    on pe: EIdHTTPProtocolException do begin
      if pe.ReplyErrorCode <> 404 then // для всех ошибок кроме 404
        ShowMessage(pe.Message);
    end;

    on e: Exception do ShowMessage(e.Message);
  end;
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".

Последний раз редактировалось Daramant; 17.08.2009 в 13:56.
Daramant вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка с IDHttp Lion-Tiger Работа с сетью в Delphi 2 13.06.2009 22:01
как убрать сообщение HTTP:404 при использовании IdHTTP(InDy9) Пепел Феникса Работа с сетью в Delphi 18 01.04.2009 19:40
WebBrowser и ошибка 404, идея ее обработки celovec Работа с сетью в Delphi 3 22.02.2009 19:40
idHTTP|ошибка 404|try...except KiDoki Работа с сетью в Delphi 3 24.01.2009 16:47
ошибка в IdHTTP YakovN Работа с сетью в Delphi 5 23.12.2008 21:07