|
| |

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 SubBei 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. |  |
 | 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 |
  |
|
Neu! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
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
|
|