Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Platzieren Sie Code-Anweisungen, die eine Ausnahme in einem try
Block auslösen könnten, und platzieren Sie Anweisungen, mit denen die Ausnahme in einem catch
oder mehreren Blöcken unterhalb des try
Blocks behandelt werden sollen. Jeder catch
Block enthält den Ausnahmetyp und kann zusätzliche Anweisungen enthalten, die zum Behandeln dieses Ausnahmetyps erforderlich sind.
Im folgenden Beispiel wird eine StreamReader Datei mit dem Namen data.txt geöffnet und eine Zeile aus der Datei abgerufen. Da der Code möglicherweise drei Ausnahmen auslöst, wird er in einem try
Block platziert. Drei catch
Blöcke erfassen die Ausnahmen und behandeln sie, indem die Ergebnisse in der Konsole angezeigt werden.
using System;
using System.IO;
public class ProcessFile
{
public static void Main()
{
try
{
using (StreamReader sr = File.OpenText("data.txt"))
{
Console.WriteLine($"The first line of this file is {sr.ReadLine()}");
}
}
catch (FileNotFoundException e)
{
Console.WriteLine($"The file was not found: '{e}'");
}
catch (DirectoryNotFoundException e)
{
Console.WriteLine($"The directory was not found: '{e}'");
}
catch (IOException e)
{
Console.WriteLine($"The file could not be opened: '{e}'");
}
}
}
Imports System.IO
Public Class ProcessFile
Public Shared Sub Main()
Try
Using sr As StreamReader = File.OpenText("data.txt")
Console.WriteLine($"The first line of this file is {sr.ReadLine()}")
End Using
Catch e As FileNotFoundException
Console.WriteLine($"The file was not found: '{e}'")
Catch e As DirectoryNotFoundException
Console.WriteLine($"The directory was not found: '{e}'")
Catch e As IOException
Console.WriteLine($"The file could not be opened: '{e}'")
End Try
End Sub
End Class
Die Common Language Runtime (CLR) fängt Ausnahmen ab, die nicht von catch
Blöcken behandelt werden. Wenn eine Ausnahme von der CLR abgefangen wird, kann je nach CLR-Konfiguration eines der folgenden Ergebnisse auftreten:
- Es wird ein Dialogfeld " Debuggen " angezeigt.
- Das Programm beendet die Ausführung, und ein Dialogfeld mit Ausnahmeinformationen wird angezeigt.
- Ein Fehler wird an die Standardfehlerausgabe ausgegeben.
Hinweis
Der meiste Code kann eine Ausnahme auslösen, und einige Ausnahmen, z OutOfMemoryException. B., können von der CLR selbst jederzeit ausgelöst werden. Anwendungen müssen diese Ausnahmen zwar nicht behandeln, aber beachten Sie die Möglichkeit, Bibliotheken zu schreiben, die von anderen verwendet werden sollen. Vorschläge zum Festlegen von Code in einem try
Block finden Sie unter Bewährte Methoden für Ausnahmen.