![]() |
idHTTP Exceptions abfangen und reagieren
Hallo DP,
ich versuche im Moment herauszufinden, wie man Exceptions, die die durch die idHTTP erzeugt werden (wie zB. ein "Read Timeout"), abfängt und auf sie reagiert, um diese unschönen Nachrichten dem User nicht zumuten zu müssen... Hat da jemand schon Erfahrungen gesammelt? Danke schonmal für euere Antworten, mfg DaSebi |
Re: idHTTP Exceptions abfangen und reagieren
Hallo. Den try..except block kennst du?
Delphi-Quellcode:
Du solltest im except-Bereich unterscheiden, welche Exception aufgetreten ist, um den Verursache (IdHTTP oder etwas anderes) zu finden.
IdHTTP := TIdHTTP.Create();
try try IdHTTP.MachWas(); except // Code aus dem Gedächtnis, ohne Garantie on EIdConnectionClosedGracefully do ... else showmessage('omfg'); end; finally IdHTTP.Free; end; Gruß blackdrake |
Re: idHTTP Exceptions abfangen und reagieren
Ja an sowas hatte ich da gedacht, nur wie kann ich jetzt unter den einzelnen Exception-Bedeutungen der idHTTP unterscheiden? Gibts da irgendwo eine Liste von Errors oder wie ist das da?
Ich möchte ja nicht nur darauf reagieren dass die idHTTP eine Exception hervorgerufen hat oder wie man das nennt, sondern auch WELCHE Exception das war, sodas ich beim Beispiel "Read Timeout" meinetwegen sagen kann: "Datei kann nicht gefunden werden..." |
Re: idHTTP Exceptions abfangen und reagieren
hast du keine IdException.pas?
falls nicht, solltest dir mal das indy update holen :-) |
Re: idHTTP Exceptions abfangen und reagieren
Hallo.
Musst du mal in den IndyDocs schauen. Eine "komplette" Liste wird dir unter Umständen nicht wirklich was bringen. Du musst eher wissen (vorausdenken), was an Stelle X deines Codes alles "schief" gehen kann. Ein Beispiel
Delphi-Quellcode:
Wenn du z.B. nur mit .Get arbeitest, wirst du auf keine Exceptions stoßen, die in anderen Bereichen auftauchen können. Einen "else" Fall (quasi die Exception der Exception) solltest du immer mit einbauen, da du vielleicht an etwas nicht gedacht haben könntest.
try
Label1.Caption := IntToStr(BytesHeruntergeladen div BytesGesamt); IdHTTP.Get(); // Downloade except on [ConnectionLost] do [Probiere nochmal]; on [Server unaccessable] do [Meldung anzeigen] on [Connection closed gracefully] do [Probiere nochmal]; //on [Division durch Null] do [Mache nichts, BytesGesamt war 0]; //Besser auf BytesGesamt<>0 prüfen else [Benutzer benachrichtigen, das was komisches passiert ist] / raise; end; Die genauen Namen der Exceptions (E...) müsstest du recherchieren (IndyDocs?) oder aus vergangenen Fehlermeldungen auslesen. Gruß blackdrake |
Re: idHTTP Exceptions abfangen und reagieren
Achso, OK!
Dankeschön :cheers: *Dann werde ich jetzt mal fleißig Fehler konstruieren XDD :coder: :drunken: mfg DaSebi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz