tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
173
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    chriss_2oo4 chriss_2oo4 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    194
    Hi!

    ich lese erweiterte Dateiinformationen von Dateien aus. Dies läuft automatisch ab und deshalb bekomme ich eine Fehlermeldung weil teilweise Dateien gesperrt werden, sobald sie geöffnet sind -> beispielsweise Excel.

    In diesem Fall kann ich die Dateinformationen nicht auslesen weil die Datei gesperrt ist, deshalb möchte ich diesen Schritt überspringen.

    Beispiel:


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
                try
                {
                   ...
                   if( IsFileLocked(path) == false)
                     ReadFileInfos()
                   ...
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Fehler");
                }

    Methode, die prüft ob datei gesperrt ist:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
            public static bool IsFileLocked(string path)
            {
                bool ret = false;
                Stream stream = null;
     
                try
                {
                    stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None);
                }
                catch
                {
                    ret = true;
                }
                finally
                {
                    stream.Close();
                }
     
                return ret;
            }


    Ist eine Datei gesperrt, wird logischerweise eine Exception in der Methode IsFileLocked ausgelöst. Was ich aber nicht ganz verstehe ist, dass diese Exception auch von der oberen Fehlerbehandlung abgefangen und in der Messagebox angezeigt wird, obwohl diese bereits von der unteren Fehlerbehandung abgefangen wurde und nicht mit throw weiter geworfen wurde.

    Normalerweise möchte ich eine Fehlermeldung anzeigen oder auswerten, aber in diesem Fall ist das nicht nötig.

    Warum wird dieser Fehler weiter geworfen und wie kann ich das verhindern?

    Vielen Dank und
    Beste Grüße

    Chriss
     

  2. #2
    chriss_2oo4 chriss_2oo4 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    194
    Wie dumm von mir...

    Bitte löschen

    Sorry, hab den Wald vor lauter Bäumen nicht gesehen...
     

Ähnliche Themen

  1. Fehlerbehandlung
    Von TeddyEngel im Forum Delphi, Kylix, Pascal
    Antworten: 1
    Letzter Beitrag: 12.09.08, 18:35
  2. Fehlerbehandlung wie ?
    Von beso im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 29.11.05, 17:17
  3. PHP Fehlerbehandlung
    Von tommycush im Forum PHP
    Antworten: 3
    Letzter Beitrag: 08.11.04, 13:50
  4. Frage zur Fehlerbehandlung
    Von zinion im Forum PHP
    Antworten: 4
    Letzter Beitrag: 03.08.04, 12:59
  5. Fehlerbehandlung
    Von cybergnom im Forum Visual Basic 6.0
    Antworten: 7
    Letzter Beitrag: 11.09.03, 13:26