Gewusst wie: Kontrolliertes Reagieren auf Fehler

Aktualisiert: November 2007

Sie können die Try...Catch...Finally-Anweisung (Visual Basic)-Konstruktion für die strukturierte Ausnahmebehandlung verwenden. Dadurch haben Sie die Möglichkeit, einen bestimmten Block von Anweisungen auszuführen, wenn während der Ausführung des Codes eine bestimmte Ausnahme ausgelöst wird. In diesem Fall löst der Code eine Ausnahme aus, die Sie mit der entsprechenden Catch-Anweisung abfangen.

So führen Sie einen Satz von Anweisungen aus, wenn der Code eine Ausnahme verursacht

  • Verwenden Sie die Try...Catch...Finally-Konstruktion, um den Code einzuschließen, der eine Ausnahme verursachen könnte. Geben Sie anschließend den Code an, der bei einer Ausnahme ausgeführt werden soll. Optional können Sie eine Reihe von Anweisungen bereitstellen, die ausgeführt werden sollen, bevor die Steuerung die Try...Catch...Finally-Konstruktion verlässt.

    Im folgenden Beispiel wird versucht, das Datum und die Uhrzeit so zu berechnen, dass der Wert einen Zeitpunkt angibt, der genau 100 Jahre nach dem in der Object-Variablen givenDate angegebenen Wert liegt.

    Dim givenDate As Object
    Dim nextCentury As Date
    Try
        nextCentury = Microsoft.VisualBasic.DateAdd("yyyy", 100, givenDate)
        Catch thisExcep As System.ArgumentOutOfRangeException
        ' The resulting date/time is later than December 31, 9999.
        Catch thisExcep As System.ArgumentException
        ' At least one argument has an invalid value.
        Catch thisExcep As System.InvalidCastException
        ' The value in givenDate cannot be interpreted as a date/time.
        Catch
        ' An unforeseen exception has occurred.
        Finally
        ' This block is always run before leaving the Try structure.
    End Try
    

    Die ersten drei Catch-Blöcke behandeln die Ausnahmen, die Sie von der DateAdd-Funktion (Visual Basic) erwarten können. Unerwartete Ausnahmen können Sie im letzten Catch-Block behandeln.

    Der Finally-Block ist unter allen Umständen immer der letzte Code, der ausgeführt wird, bevor die Try...Catch...Finally Konstruktion verlassen wird. Wenn Sie in einem Try-Block oder in einem Catch-Block Ressourcen wie Objekte oder Datenbankverbindungen erstellen bzw. öffnen, können Sie sie gegebenenfalls mit dem Finally-Block schließen und freigeben.

    Wenn die Ausnahmevariable thisExcep nicht in einer Deklarationsanweisung wie Dim enthalten ist, dient die Catch-Anweisung mit der As-Klausel als Deklaration.

Siehe auch

Aufgaben

Gewusst wie: Übertragen der Steuerung aus einer Kontrollstruktur

Gewusst wie: Ausführen von Anweisungen in Abhängigkeit von einer oder mehreren Bedingungen

Gewusst wie: Prüfen auf mehrere Werte eines Ausdrucks

Konzepte

Entscheidungsstrukturen

Schleifenstruktur

Weitere Steuerungsstrukturen

Geschachtelte Steuerungsstrukturen

Weitere Ressourcen

Ablaufsteuerung in Visual Basic