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.
Wenn eine Ausnahme auftritt, wird die Ausführung beendet und die Steuerung dem entsprechenden Ausnahmehandler übergeben. Dies bedeutet häufig, dass Codezeilen, von denen Sie erwarten, dass sie ausgeführt werden, übersprungen werden. Einige Ressourcenbereinigungen, z. B. das Schließen einer Datei, müssen auch dann ausgeführt werden, wenn eine Ausnahme ausgelöst wird. Dazu können Sie einen finally
Block verwenden. Ein finally
Block wird immer ausgeführt, unabhängig davon, ob eine Ausnahme ausgelöst wird.
Im folgenden Codebeispiel wird ein try
/catch
Block zum Abfangen eines ArgumentOutOfRangeExceptionBlocks verwendet. Die Main
Methode erstellt zwei Arrays und versucht, ein Array in die andere zu kopieren. Die Aktion generiert ein ArgumentOutOfRangeException, da length
als -1 angegeben ist, und der Fehler wird in die Konsole geschrieben. Der finally
Block wird unabhängig vom Ergebnis der Kopieraktion ausgeführt.
class ArgumentOutOfRangeExample
{
public static void Main()
{
int[] array1 = {0, 0};
int[] array2 = {0, 0};
try
{
Array.Copy(array1, array2, -1);
}
catch (ArgumentOutOfRangeException e)
{
Console.WriteLine($"Error: {e}");
throw;
}
finally
{
Console.WriteLine("This statement is always executed.");
}
}
}
Class ArgumentOutOfRangeExample
Public Shared Sub Main()
Dim array1() As Integer = {0, 0}
Dim array2() As Integer = {0, 0}
Try
Array.Copy(array1, array2, -1)
Catch e As ArgumentOutOfRangeException
Console.WriteLine("Error: {0}", e)
Throw
Finally
Console.WriteLine("This statement is always executed.")
End Try
End Sub
End Class