Freigeben über


Gewusst wie: Verwenden von Finally-Blöcken

Aktualisiert: November 2007

Beim Auftreten einer Ausnahme wird die Ausführung beendet und die Kontrolle an den nächsten Ausnahmehandler übergeben. Häufig werden dadurch Codezeilen, die sonst immer aufgerufen werden, nicht ausgeführt. Einige Aufgaben zur Systembereinigung, wie z. B. Schließen einer Datei, müssen immer ausgeführt werden, selbst wenn eine Ausnahme ausgelöst wurde. Dies kann durch Verwenden eines finally-Blocks erreicht werden. Ein finally-Block wird immer ausgeführt, unabhängig vom Auslösen einer Ausnahme.

Im folgenden Beispielcode wird ein try/catch-Block verwendet, um eine ArgumentOutOfRangeException abzufangen. Durch die Main-Methode werden zwei Arrays erstellt, und es wird der Versuch unternommen, ein Array in das andere zu kopieren. Die Aktion generiert eine ArgumentOutOfRangeException-Ausnahme. Der Fehler wird auf der Konsole ausgegeben. Der finally-Block wird unabhängig vom Ausgang des Kopiervorgangs ausgeführt.

Beispiel

Imports System
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)
      Finally
         Console.WriteLine("This statement is always executed.")
      End Try
   End Sub 'Main
End Class 'ArgumentOutOfRangeExample
using System;
class ArgumentOutOfRangeExample
   {
   static public void Main()
      {
      int[] array1={0,0};
      int[] array2={0,0};
         try
         {
         Array.Copy(array1,array2,-1);
         }
         catch (ArgumentOutOfRangeException e)
         {
         Console.WriteLine("Error: {0}",e);
         }
         finally
         {
         Console.WriteLine("This statement is always executed.");
         }
      }
   }

Siehe auch

Aufgaben

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

Gewusst wie: Explizites Auslösen von Ausnahmen

Gewusst wie: Erstellen benutzerdefinierter Ausnahmen

Weitere Ressourcen

Grundlagen der Ausnahmebehandlung