Freigeben über


Gewusst wie: Verwenden des Try-Catch-Blocks zum Abfangen von Ausnahmen

Aktualisiert: November 2007

Fügen Sie Codeabschnitte, die Ausnahmen auslösen könnten, in einen try-Block ein und Code, der Ausnahmen behandelt, in einen catch-Block. Ein catch-Block ist eine Folge von Anweisungen, die mit dem Schlüsselwort catch beginnen, gefolgt von einem Ausnahmetyp und einer auszuführenden Aktion.

Hinweis:

Fast jede Codezeile kann eine Ausnahme verursachen, vor allem solche, die von der Common Language Runtime ausgelöst werden, wie z. B. die Ausnahmen OutOfMemoryException und StackOverflowException. Bei den meisten Anwendungen kommen solche Ausnahmen selten vor, aber Sie sollten darauf achten, wenn Sie Bibliotheken für andere Benutzer schreiben. Wann es ratsam ist, Code in einen try-Block einzusetzen, erfahren Sie unter Empfohlene Vorgehensweise für die Ausnahmebehandlung.

Im folgenden Beispielcode wird ein try/catch-Block verwendet, um gegebenenfalls Ausnahmen abzufangen. Die Main-Methode enthält einen try-Block mit einer StreamReader-Anweisung, mit der die Textdatei data.txt geöffnet und eine Zeichenfolge aus der Datei geschrieben wird. Auf den try-Block folgt ein catch-Block, der alle vom try-Block gelieferten Ausnahmen abfängt.

Beispiel

Option Explicit
Option Strict
Imports System
Imports System.IO
Imports System.Security.Permissions
<assembly: FileIOPermissionAttribute(SecurityAction.RequestMinimum, All := "c:\data.txt")>

Public Class ProcessFile
   Public Shared Sub Main()
      Try
         Dim sr As StreamReader = File.OpenText("data.txt")
         Console.WriteLine("The first line of this file is {0}", sr.ReadLine())
      Catch e As Exception
         Console.WriteLine("An error occurred: '{0}'", e)
      End Try
   End Sub
End Class
using System;
using System.IO;
using System.Security.Permissions;
// Security permission request.
[assembly:FileIOPermissionAttribute(SecurityAction.RequestMinimum, All = @"c:\data.txt")]
public class ProcessFile {
    public static void Main() {
        try {
            StreamReader sr = File.OpenText("data.txt");
            Console.WriteLine("The first line of this file is {0}", sr.ReadLine());    
        }
        catch(Exception e) {
            Console.WriteLine("An error occurred: '{0}'", e);
        }
    }
}

Dieses Beispiel veranschaulicht eine grundlegende catch-Anweisung, die in der Lage ist, jede Ausnahme abzufangen. Im Allgemeinen ist es jedoch besserer Programmierstil, einen spezifischen Ausnahmetyp abzufangen, anstatt die grundlegende catch -Anweisung zu verwenden. Weitere Informationen über das Abfangen spezifischer Ausnahmen finden Sie unter Verwenden spezifischer Ausnahmen in einem Catch-Block.

Siehe auch

Aufgaben

Gewusst wie: Verwenden spezifischer Ausnahmen in einem Catch-Block

Gewusst wie: Explizites Auslösen von Ausnahmen

Gewusst wie: Erstellen benutzerdefinierter Ausnahmen

Gewusst wie: Verwenden von Finally-Blöcken

Weitere Ressourcen

Grundlagen der Ausnahmebehandlung