![]() |
Delphi-Version: 2010
Fehlerbehandlung - Fehler nicht anzeigen
In meinem Programm das Files in Windows scannt müssen gelockte Files
übersprungen werden, ohne dass das Programm stoppt. Allenfalls sollen die gelockten Files gezählt werden. Zurzeit stoppt das Programm jeweils mit der Meldung 'Filexxx is locked' was unerwünscht ist. Das Verhalten findet im Non-Debug Mode statt. Ich verwende folgenden Code:
Code:
Hat jemand eine Idee wie ich die Meldung unterdrücke ?
TRY
fs := TFileStream.Create(fName, fmOpenRead OR fmShareDenyNone); EXCEPT ON EFOpenError DO BEGIN (* .. zB Locked Files zaehlen *) END; |
AW: Fehlerbehandlung - Fehler nicht anzeigen
Was bedeutet "locked" in Deiner Situation?
Was soll es denn "scannen"? Ein wenig mehr Informationen bitte. Aus dem Bauch heraus:
Delphi-Quellcode:
TRY
fs := TFileStream.Create(fName, fmOpenRead OR fmShareDenyNone); EXCEPT // ON EFOpenError DO BEGIN (* .. zB Locked Files zaehlen *) END; |
AW: Fehlerbehandlung - Fehler nicht anzeigen
Ich vermute einmal du suchst SetErrorMode:
![]() Standardmäßig leitet Windows kritische Fehler nicht an die aufrufende Anwendung weiter, sondern zeigt stattdessen einen Fehlerdialog an. Das kannst du damit ändern. |
AW: Fehlerbehandlung - Fehler nicht anzeigen
Ja, auch die Standardeinstellung von SetErrorMode in Delphi (RTL) ist auch so ausgelegt, dass nichts angezeigt wird. (Ausnahme gibt es bei einigen uralten grottigen Treibern für z.B. Hardware/Netzwerkkarten)
Es gibt aber einige Fremdkomponenten, welche (fast böswillig) global den Modus ändern. (nachschauen, falls du Welche verwendest und über einen Austausch nachdenken) Und ja, normalerweise löst diese API ( ![]() Delphi wertet nur den Rückgabewert ( ![]() ![]() Im Debugger würde zwar angehalten (so lange man diese Exception nicht ignorieren lässt), aber das ist dann eine Meldung vom Debugger und nicht aus dem Programm. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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