Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Не могу обработать исключение в IdHTTP


Автор: RaZoR 1.1.2007, 23:44
Здравствуйте, не могу обработать исключительную ситуацию при работе с IdHTTP. Мой код: 
Код

  AnsiString page = "";
  TIdHTTP *idHTTP = new TIdHTTP(Form1->IdHTTP1);
  idHTTP->HandleRedirects = true;
  try
  {
    page = idHTTP->Get(url);
  }
  catch(...)
  {
    ShowMessage("Ошибка при попытке загрузки страницы: " + page);
  }
  delete(idHTTP);

вылетает на строке page = idHTTP->Get(url);
скрин в аттаче.
что делаю не так?

Автор: codelord 2.1.2007, 00:39
У меня ловит, попоробуй на время снять галочки там где USE dinamic RTL и Build whith Run Time Package

Автор: RaZoR 2.1.2007, 12:11
Попробовал. Если компилирую и из билдера запускаю, то все равно выскакивает та ошибка.
Но! Если в билдере скомпилировать и просто exe'шник запустить из проводника, то исключения обрабатываются. Потом пробовал обратно ставить галочки и если exe'шник запускать, то тоже обрабатываются.

Автор: Snowy 2.1.2007, 12:35
Ясен перец.
Тыж под дебагером запускаешь.
В среде всё равно будет останавливаться на обрабатываемых исключениях.
Или отключи останов в опциях, или при останове снова нажми F9 для продолжения.

Автор: RaZoR 4.1.2007, 11:21
точно, спасибо.

Автор: CLIPSA 23.1.2007, 01:05
А как проверить сущесвует данный url или нет. Т.е загружать станицу мне не нужно . Нужно проверить есть он или url битая, а загружать страницу ненужно .

 smile 

Автор: _hunter 23.1.2007, 11:20
можно выполнить head-запрос (но не все сайты на него ответят...)
проще выполнить Get и в OnDoWork оборвать закачку...

Автор: Snowy 23.1.2007, 11:23
Пожалуйста, один топик - один вопрос.

Цитата(CLIPSA @  23.1.2007,  01:05 Найти цитируемый пост)
А как проверить сущесвует данный url или нет.
Вместо IdHTTP->Get используй IdHTTP->Head(url)
Если выскочит исключение - нету. Не выскочит - получишь параметры страницы, не закачивая её (размер, дату изменения и т.д.)

Автор: CLIPSA 24.1.2007, 01:45
Цитата(Snowy @  23.1.2007,  11:23 Найти цитируемый пост)
IdHTTP->Head(url)

 smile Здорово. Получилось. Спасибо Snowy  и _hunter  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)