如何捕获 404 错误并从列表框中找到导致它的原因

How to catch 404 error and and find what causing it from listbox

我想捕获 404 错误异常并从 listbox1 中捕获导致此错误的项目并将其存储在 listbox2 中!

到目前为止我的代码:

procedure TForm1.Button3Click(Sender: TObject);
var
s: string;
lHTTP: TIdHTTP;
IdSSL : TIdSSLIOHandlerSocketOpenSSL;
i: Integer;
satir: Integer;
str: TStringList;
begin

  lHTTP := TIdHTTP.Create(nil);
  IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
 try
 lHTTP.ReadTimeout := 30000;
 lHTTP.IOHandler := IdSSL;
 IdSSL.SSLOptions.Method := sslvTLSv1;
 IdSSL.SSLOptions.Method := sslvTLSv1;
 IdSSL.SSLOptions.Mode := sslmUnassigned;
 lHTTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP);
 lHTTP.HandleRedirects := True;
 satir := ListBox1.Items.Count;
 str := TStringList.Create;
 for i:= 0 to satir-1 do
 begin

 try
 lHTTP.Get(ListBox1.Items.Strings[i]);
  except
  on E: EIdHTTPProtocolException do
   begin
   if E.ErrorCode <> 404 then

    raise;
   Break;
   Memo1.Lines.Add(E.ErrorMessage);
 end;
 end;

 end;

Finally

end;
end;

现在,当我按下按钮 3 时,备忘录 1 中没有添加任何内容 我需要帮助,非常感谢。

发生异常时将失败的URL(从ListBox1)添加到ListBox2即可:

try
  lHTTP.Get(ListBox1.Items[i]);
except
  on E: EIdHTTPProtocolException do
  begin
    if E.ErrorCode <> 404 then 
      raise;
    Memo1.Lines.Add(E.ErrorMessage);
    ListBox2.Items.Add(ListBox1.Items[i]);
 end;