vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Allgemeine Ausnahmetypen nicht auffangen? 
Autor: keco
Datum: 20.01.12 20:08

1.) Diesen Fall habe ich im vorigen Post auch beschrieben. Das kam vermutlich nicht so deutlich hervor. Nehmen wir an, du möchtest ein FileInfo-Objekt erstellen. Beim Erstellen können sehr verschiedene Ausnahmen ausgelöst werden. Im einzelnen könnte das Erstellen einer Instanz folgendermaßen aussehen:
    Public Sub DoStuff(filename As String)
        Try
            Dim fi As New System.IO.FileInfo(filename)
 
        Catch ex As System.ArgumentNullException
            MessageBox.Show("fileName hat den Wert null.")
 
            ' Hier könnte ein Sonderfall vorliegen, dessen Ausnahme automatisch 
            ' behoben werden könnte
            ' durch Erstellen und Öffnen einer temporären Datei
 
        Catch ex As Security.SecurityException
            MessageBox.Show("Der Aufrufer verfügt nicht über die erforderliche" & _
              "Berechtigung.")
 
            ' Hier könnte ein Sonderfall vorliegen, dessen Ausnahme automatisch 
            ' behoben werden könnte
            ' durch Anforderung von höheren Rechten
 
        Catch ex As System.ArgumentException
            MessageBox.Show("Der Dateiname ist leer, oder er enthält nur" & _
              "Leerräume oder ungültige Zeichen.")
 
            ' Hier könnte ein Sonderfall vorliegen, dessen Ausnahme automatisch 
            ' behoben werden könnte
            ' durch Erstellen und Öffnen einer temporären Datei
 
        Catch ex As System.UnauthorizedAccessException
            MessageBox.Show("Der Zugriff auf fileName wird verweigert.")
 
        Catch ex As System.IO.PathTooLongException
            MessageBox.Show("Der angegebene Pfad und/oder der Dateiname" & _
              "überschreiten die vom System vorgegebene Höchstlänge.")
 
            ' Hier könnte ein Sonderfall vorliegen, dessen Ausnahme automatisch 
            ' behoben werden könnte
            ' durch Aufruf von API-Methoden
 
        Catch ex As System.NotSupportedException
            MessageBox.Show("fileName enthält einen Doppelpunkt (:) innerhalb" & _
              "der Zeichenfolge.")
 
            ' Hier könnte ein Sonderfall vorliegen, dessen Ausnahme automatisch 
            ' behoben werden könnte
            ' durch Entfernen von Sonderzeichen oder Erstellen und Öffnen einer 
            ' temporären Datei
 
        Catch ex As System.Exception
            ' Welcher spezielle Ausnahme ist aufgetreten? Wie kann ich diese 
            ' Ausnahme eventuell beheben?
 
        End Try
    End Sub
Bei den einzelnen Ausnahmen, die du im Vorneherein abfangen kannst, da du weißt, welche auftreten können, ist es möglich entsprechend zu reagieren. Dabei bleibt eine solche Ausnahme dem Anwender verborgen. Die Ausnahme könnte möglicherweise durch dich in einem solchen Falle von selbst korrigiert werden. Der Anwender wird daher nicht verunsichert und vorallem nicht durch übermäßig häufige unerwartete "Fehlermeldungen" genervt. Außerdem kannst du deinen Programmzustand für die jeweiligen einzelnen Fehler immer anpassen und hast somit beim Debuggen genaue Kenntnisse darüber, was aus welchem Grund schiefgelaufen ist.

2.) Microsoft möchte uns klar machen, dass man Ausnahmen immer spezialisiert abfangen soll (erste Try-Anweisung). Sollte das aus irgendeinem Grund nicht gemacht werden, weil zu diesem Zeitpunkt noch nicht auf diese Ausnahme reagiert werden soll, dann wird diese weitergeleitet. Bis zur übergeordneten Try-Anweisung, falls noch eine kommt. Diese sollte dann auch die spezielle Ausnahme abfangen. Damit ist eine kontrollierte Ausnahebehandlung realisierbar. Ausnahmen werden mit Hilfe dieser Technik an einem Punkt im Programm verarbeitet, wo eine Reaktion auf eine solche Ausnahme sinnvoll ist. Nicht immer ist eine sofortige Behandlung der Ausnahme sinnvoll.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Allgemeine Ausnahmetypen nicht auffangen?1.8242Net19.01.12 23:17
Re: Allgemeine Ausnahmetypen nicht auffangen?1.479keco20.01.12 16:26
Re: Allgemeine Ausnahmetypen nicht auffangen?1.3542Net20.01.12 19:43
Re: Allgemeine Ausnahmetypen nicht auffangen?1.354keco20.01.12 20:08
Re: Allgemeine Ausnahmetypen nicht auffangen? - Ergänzung zu...1.334keco20.01.12 20:32
Vielen Dank!1.2962Net21.01.12 11:54
Re: Vielen Dank!1.352keco21.01.12 12:08
Re: Vielen Dank!1.2962Net21.01.12 13:56

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel