Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Problem mit Indy und der Rapidshare-Api

  Alt 27. Dez 2010, 16:26
Ich greif mal dieses Schnipsel aus deinem Code raus:
Delphi-Quellcode:
try
  idHTTP.Request.ContentType := 'multipart/form-data';
  Stream.AddFile('rsdffile', 'D:\test.rsdf', 'multipart/form-data');
  httpAnswer := idHTTP.Post('http://wirpo032.bplaced.net/rsdf/rsdf_decrypt.php', Stream);
  sleep(5);
except
  ShowMessage('Error parsing RSDF-File!');
end;
Deine Fehlerbehandlung ist total falsch.
Ganz egal welcher Fehler auftritt (Server nicht erreichbar, keine Verbindung in Internet, Objekt(e) sind nil,Laufwerk D: nicht vorhanden, ...) es wird immer nur die gleiche nichtssagende Meldung angezeigt.
Aber es kommt noch schlimmer: das Programm läuft weiter, obwohl die Eingabedaten fehlen.
Da wäre es besser man hätte try...except ganz weggelassen.

So sähe eine richtige Fehlerbehandlung aus:
Delphi-Quellcode:
try
  url := 'http://wirpo032.bplaced.net/rsdf/rsdf_decrypt.php';
  idHTTP.Request.ContentType := 'multipart/form-data';
  Stream.AddFile('rsdffile', 'D:\test.rsdf', 'multipart/form-data');
  httpAnswer := idHTTP.Post(url, Stream);
  sleep(5);
except
  on E:Exception do
  begin
    E.Message := 'Error parsing RSDF-File!'#13#10+ url +#13#10 + E.Message;
    raise;
  end;
end;
  Mit Zitat antworten Zitat