Я не уверен, если это лучший способ проверить, если исключение TIdHTTP поднимается, вот что я сделал:Как проверить, если TIdHTTP возбуждается исключение
HTTP := TIDHttp.Create(nil);
try
try
HTTP.Head(URL);
SizeF := HTTP.Response.ContentLength;
code := HTTP.ResponseCode;
except
on E: Exception do
begin
code := HTTP.ResponseCode;
ShowMessage(IntToStr(code));
end;
end;
finally
HTTP.Free;
end;
if code = 200 then
// go download the file using multiple threads.
То, что я хочу достигнуть, (например, я уже это сделал), в противном случае программа продолжает работать и загружать файл. Так это правильный способ сделать это? Спасибо за ваши ответы.
Да, вы просто используете попробовать/за исключением поймать каких-либо исключений в Head/Get/Post запрос. Обратите внимание, что загрузка не запускается, поскольку исключение прерывает процедуру - вы можете использовать Head, а затем Get в том же блоке. – smooty86
Этот код проглатывает все исключения, независимо от их типа, и считывает код ответа, если он может быть определен неправильно. Я не думаю, что этот код делает то, что вы думаете. –
Предполагается работать таким образом. Ему не нужно заботиться о типе исключения, если ему нужен только 1 результат. – smooty86