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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2015, 20:23   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Как отслеживать ошибки TIdHTTP ?

Я посылаю запросы php скрипту в таком виде:
Код:
LoginInfo:TStringList;



LoginInfo:=TStringList.Create;
            LoginInfo.Add('login='+St_login);
            LoginInfo.Add('passw='+St_pass);
            str:=idhtp1.Post(server+'yyy.php',LoginInfo);
Если сервер не доступен вылетает ошибка.
Как правильно выловить ошибку?
Т.е. если ошибка есть то сделать то то, нету другое и не останавливало программу.

Знаю про IdHTTP1.ResponseCode но как его применить не знаю.
Illusiony вне форума Ответить с цитированием
Старый 18.04.2015, 20:54   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

try except
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.04.2015, 20:57   #3
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,455
По умолчанию

Код:
try 
 код программы
except
  on e: Exсeption then
      ShowMessage(e.MEssage);
end;
смотри еще EIdSocketError, EIdHTTPProtocolException
uberchel вне форума Ответить с цитированием
Старый 18.04.2015, 22:33   #4
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Спасибо, только небольшие ошибочки у вас :
Код:
try 
 код программы
except
  on e: Exсeption then
      ShowMessage(e.MEssage);
end;
Exсeption
Здесь не "c" латинская а другой символ походу "c" на русской раскладке
Хорошо что сразу подумал об этом, а то думаю почему на Exception ругается
и вместо begin нужно do в этом контексте

Тока проблема не решена.

Выводится и мое сообщение и то что было
Было:


Притом два раза.
Может быть потому что я сделал:
Код:
try 
             str:=idhtp1.Post(server+'yyy.php',LoginInfo);
              except
                    on E: Exception do begin
                        ShowMessage(E.MEssage+'чтото');
                        //OnClose();
                        lbl37.Caption:='ghgh';
                      // TForm1.FormDestroy();
                      //Application.Terminate;
                      Exit;
                  end;
             end;
А у меня есть еще:
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
LoginInfo:=TStringList.Create;
LoginInfo.Add('login='+St_login);
LoginInfo.Add('status=0');
LoginInfo.Add('passw='+St_pass);
LoginInfo.Add('xod_sec=20');
idhtp1.Post(server+'yyy.php',LoginInfo);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
LoginInfo:=TStringList.Create;
LoginInfo.Add('login='+St_login);
LoginInfo.Add('status=0');
LoginInfo.Add('passw='+St_pass);
LoginInfo.Add('xod_sec=20');
idhtp1.Post(server+'yyy.php',LoginInfo);
end;
Наверно срабатывают еще 2 этих события по Exit? и вызывают эти ошибки?

Да, имеено так и есть

Последний раз редактировалось Stilet; 20.04.2015 в 13:06.
Illusiony вне форума Ответить с цитированием
Старый 20.04.2015, 12:19   #5
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

А смысл ставить exit, если все равно уничтожаете форму?

По application.terminate дестрой и формклос все равно сработают. Так что можно их не писать в exception

Кстати, а где logininfo.free?
from dark to light)

Последний раз редактировалось Алексей_2012; 20.04.2015 в 12:22.
Алексей_2012 вне форума Ответить с цитированием
Старый 20.04.2015, 13:36   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Код:
LoginInfo:=TStringList.Create;
LoginInfo.Add('login='+St_login);
LoginInfo.Add('status=0');
LoginInfo.Add('passw='+St_pass);
LoginInfo.Add('xod_sec=20');
idhtp1.Post(server+'yyy.php',LoginInfo);
Код:
LoginInfo:=TStringList.Create;
LoginInfo.Add('login='+St_login);
LoginInfo.Add('status=0');
LoginInfo.Add('passw='+St_pass);
LoginInfo.Add('xod_sec=20');
idhtp1.Post(server+'yyy.php',LoginInfo);
Про функции/процедуры слышали?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отслеживать фокус клавиатуры? Питерский2 Win Api 4 07.06.2014 18:34
Как отслеживать изменения в MYSQL Matras SQL, базы данных 2 19.06.2012 11:26
Как отслеживать процесс в Диспетчере задач... xC0der Win Api 2 12.01.2012 10:41
Как лучше отслеживать текстбокс Eresiarh Microsoft Office Excel 7 19.02.2010 16:24
Как подружить SendMessage и TIdHTTP zcoder Работа с сетью в Delphi 1 13.04.2009 06:01