![]() |
TDownloadURL Fehler abfangen?
Ich benutze TDownloadURL um eine Datei herunterzuladen was auch ziemlich gut funktioniert.
Leider werden Fehler (zB. falsche URL) sofort ausgegeben anstatt eine Exception zu werfen. Kann ich trotzdem irgendwie die Fehlermeldungen auffangen und selbst damit weiterarbeiten? Die entsprechende Codestelle in der Unit ExtActns sieht so aus:
Delphi-Quellcode:
if Assigned(UrlMonDownloadToFile) then
begin if URLMonDownloadToFile(nil, PChar(URL), PChar(FileName), 0, Self as IBindStatusCallBack) <> S_OK then raise Exception.CreateResFmt(@SErrorDownloadingURL, [URL]); end else raise Exception.CreateResFmt(@SUrlMonDllMissing, [UrlMonLib]); |
Re: TDownloadURL Fehler abfangen?
Hallo, ich gehe mal von der naiven Annahme aus, dass sich dies durch
Delphi-Quellcode:
abfangen lässt.
try
URLMonDownloadToFile(.....); except .... end; Sollte das OS eine Exception werfen, dann mit
Delphi-Quellcode:
versuchen.
function URLMonDownloadToFileEx(...): ...;
var OldMode: UINT; FPUControlWord: Word; begin OldMode := SetErrorMode(ErrorMode); try asm FNSTCW FPUControlWord end; try result := URLMonDownloadToFile(.....); finally asm FNCLEX FLDCW FPUControlWord end; end; finally SetErrorMode(OldMode); end; end; |
Re: TDownloadURL Fehler abfangen?
Zitat:
|
Re: TDownloadURL Fehler abfangen?
Das Problem ist dass überhaupt keine Exceptions geworfen werden.
Ich wollte mir erstmal ansehen was so für Exceptions auftreten können:
Delphi-Quellcode:
Leider kommt es nie zu einer Exception.
var
RemotePath: String; Download:TDownloadURL; begin downloadfilename:=fileName; RemotePath:='http://localhost/download/'; Download:=TDownloadURL.Create(self); Download.URL:=RemotePath+filename; Download.Filename:=ExtractFilePath(Application.ExeName)+fileName; Download.OnDownloadProgress:=URL_OnDownloadProgress; try Download.ExecuteTarget(nil); except on E:Exception do ShowMessage(E.Message); end; |
Re: TDownloadURL Fehler abfangen?
Hallo Hedge, hab den Demosource bei mit ausprobiert.
Das Teil schmeisst die schönsten Exceptions. Diese werden auch korrekt behandelt. Habs mit D7 getestet, funkt tadellos, ohne Probleme. Womöglich D2009 Problem?? lg. |
Re: TDownloadURL Fehler abfangen?
Danke fürs Ausprobieren.
Nen D2009-Problem kann ich nicht ausschließen, aber was kann man da machen? |
Re: TDownloadURL Fehler abfangen?
Warten bis jemand das mit D2009 bestätigt hat. ;)
|
Re: TDownloadURL Fehler abfangen?
Kann mir Jemand bei dem es funktioniert vielleicht mal seine ExtActns.pas schicken damit ich mit Meiner vergleichen kann?
Nach wie vor erscheinen bei mir im Fehlerfall lediglich Message-Boxen die Auskunft über diesen geben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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