Freigeben über


Gewusst wie: Implementieren von E/A-Try...Catch-Blöcken in Visual Basic

Im folgenden Codebeispiel wird ein Try...Catch-Block implementiert, der Exception, IOException sowie alle Ausnahmen verarbeitet, die von IOException abgeleitet sind.

Beispiel

Dieses Beispiel beginnt mit der spezifischsten Ausnahme und endet bei der allgemeinsten. Jede Ausnahme wird getestet.

Dieses Codebeispiel ist auch als IntelliSense-Codeausschnitt verfügbar. In der Codeausschnittauswahl finden Sie es unter Dateisystem - Verarbeiten von Laufwerken, Ordnern und Dateien. Weitere Informationen finden Sie unter Gewusst wie: Einfügen von IntelliSense-Codeausschnitten.

Try
    ' Add code for your I/O task here. 
Catch dirNotFound As System.IO.DirectoryNotFoundException
    ' Code to handle DirectoryNotFoundException.
Catch fileNotFound As System.IO.FileNotFoundException
    ' Code to handle FileNotFoundException.
Catch pathTooLong As System.IO.PathTooLongException
    ' Code to handle PathTooLongException.
Catch ioEx As System.IO.IOException
    ' Code to handle IOException.
Catch security As System.Security.SecurityException
    ' Code to handle SecurityException.
Catch ex As Exception
    ' Rethrow exception if anything else has occurred.
    Throw ex
Finally
    ' Dispose of any resources you used or opened in the Try block. 
End Try

Kompilieren des Codes

Fügen Sie den auszuführenden Code zum Try-Block hinzu.

Robuste Programmierung

Verwenden Sie diesen Codeblock als Ausgangspunkt, wenn Sie einen Datenvorgang mit einer Try...Catch-Anweisung umschließen möchten. Dieser Try...Catch-Block ist so konzipiert, dass alle Ausnahmen abgefangen und zurückgegeben werden. Möglicherweise ist dies nicht die richtige Wahl für das Projekt. Eine Abhandlung zu den Ausnahmebehandlungsoptionen finden Sie unter Empfohlene Vorgehensweise für die Verwendung von IntelliSense-Codeausschnitten.

Mit Windows Forms-Steuerelementen, wie z. B. der OpenFileDialog-Komponente (Windows Forms)-Komponente und den SaveFileDialog-Komponente (Windows Forms)-Komponentensteuerelementen, die die Benutzerauswahl auf gültige Dateinamen beschränken, können Sie die Wahrscheinlichkeit von Ausnahmen verringern. Die FileInfo.Exists-Eigenschaft kann überprüfen, ob eine Datei vorhanden ist, bevor Sie versuchen, diese Datei zu öffnen. Die Verwendung dieser Steuerelemente und Klassen bietet jedoch keine absolute Sicherheit. Zwischen dem Zeitpunkt, zu dem der Benutzer die Datei auswählt, und dem Zeitpunkt, zu dem der Code ausgeführt wird, kann sich das Dateisystem ändern. Beim Arbeiten mit Dateien ist eine Ausnahmebehandlung deshalb fast immer erforderlich.

Sicherheit

Die Assembly erfordert für viele Dateiaufgaben eine von der FileIOPermission -Klasse gewährte Berechtigungsebene. Falls der Code in einem teilweise vertrauenswürdigen Kontext ausgeführt wird, wird aufgrund unzureichender Berechtigungen u. U. eine Ausnahme ausgelöst. Weitere Informationen finden Sie unter Grundlagen der Codezugriffssicherheit. Der Benutzer muss außerdem auf die Datei zugreifen können, sofern sie vorhanden ist. Weitere Informationen finden Sie unter Übersicht über die ACL-Technologie.

Sie sollten anhand der Dateinamenerweiterung keine Schlüsse auf den Inhalt der Datei ziehen. Bei der Datei Form1.vb handelt es sich zum Beispiel nicht unbedingt um eine Visual Basic-Quelldatei.

Siehe auch

Aufgaben

Gewusst wie: Filtern von Fehlern in einem Catch-Block in Visual Basic

Gewusst wie: Überprüfen der inneren Ausnahme einer Ausnahme (Visual Basic)

Referenz

Try...Catch...Finally-Anweisung (Visual Basic)

Konzepte

Empfohlene Vorgehensweise für die Verwendung von IntelliSense-Codeausschnitten

Übersicht über die strukturierte Ausnahmebehandlung für Visual Basic

Verwenden der strukturierten und der unstrukturierten Ausnahmebehandlung (Visual Basic)

Weitere Ressourcen

Ausnahmebehandlungsaufgaben (Visual Basic)