Freigeben über


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

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.

HinweisHinweis

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

Imports System
Imports System.IO

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())
        sr.Close()
        Catch e As Exception
            Console.WriteLine("An error occurred: '{0}'", e)
        End Try
    End Sub
End Class
using System;
using System.IO;

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());
        sr.Close();
        }
        catch (Exception e)
        {
            Console.WriteLine("An error occurred: '{0}'", e);
        }
    }
}
using namespace System;
using namespace System::IO;

public ref 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());
        sr->Close();
        }
        catch (Exception^ e)
        {
            Console::WriteLine("An error occurred: '{0}'", e);
        }
    }
};

int main()
{
    ProcessFile::Main();
}

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