Ausnahmebehandlung in VB.Net: Beispiele für die Try & Catch-Behandlung

Was ist eine Ausnahme in VB.Net?

An Exception in VB.Net bezieht sich auf ein Problem, das während der Programmausführung auftritt. Es wird durch einen unerwarteten Umstand verursacht. Ein gutes Beispiel ist, wenn Sie eine Divisionsoperation durchführen und dann durch Null (0) dividieren. Es wird eine Ausnahme ausgelöst.

Was ist Ausnahmebehandlung in VB.Net?

Mit Ausnahmen in VB.Netkönnen Sie die Kontrolle über ein Programm von einem Teil auf einen anderen übertragen. In VB.Net werden Ausnahmen mit den folgenden 4 Schlüsselwörtern behandelt:

Stichwort (Keyword) Detail
Versuchen Die Aufgabe des Try-Blocks besteht darin, den Codeblock zu identifizieren, für den eine bestimmte Ausnahme aktiviert wird. Es sollten ein oder mehrere Catch-Blöcke folgen.
Ringen Das Abfangen der Ausnahme erfolgt in diesem Block. Es handelt sich um einen Ausnahmebehandler, in dem die Ausnahme behandelt wird.
Endlich Verwenden Sie den Final-Block, um eine Reihe von Anweisungen auszuführen, unabhängig davon, ob eine Ausnahme aufgetreten ist oder nicht.
Werfen Nach dem Auftreten eines Problems wird eine Ausnahme ausgelöst. Dies ist die Arbeit des Schlüsselworts Throw.

Syntax von Try Catch in VB.Net

Die Try Catch-Anweisungen in VB.Net werden mit der folgenden Syntax definiert:

Try
   [ try_Statement(s) ]
   [ Exit Try ]
[ Catch [ exception_name [ As type ] ] [ When expression ]
   [ catch_Statement(s) ]
   [ Exit Try ] ]
[ Catch ... ]
[ Finally
   [ finally_Statement(s) ] ]
End Try

Der Try/Catch-Block sollte den Code umgeben, der möglicherweise eine Ausnahme auslöst. Dieser Code wird als geschützter Code bezeichnet. Sie können mehrere Catch-Anweisungen verwenden, wenn Sie verschiedene Arten von Ausnahmen abfangen müssen.

Beispiel für die Ausnahmebehandlung in VB.Net mit Try Catch und Final

Mit den Try/Catch-Anweisungen können Sie Ihren gewöhnlichen Programmcode vom Fehlerbehandlungssystem trennen. Lassen Sie uns demonstrieren, wie eine Ausnahme mithilfe der Schlüsselwörter Try, Catch und Endlich behandelt wird.

Schritt 1) Erstellen Sie eine neue Konsolenanwendung.

Schritt 2) Benutze diesen Code:

Module Module1
    Sub divisionFunction(ByVal n1 As Integer, ByVal n2 As Integer)
        Dim answer As Integer
        Try
            answer = n1 \ n2
        Catch ex As DivideByZeroException
            Console.WriteLine("Exception: {0}", ex)
        Finally
            Console.WriteLine("Answer is: {0}", answer)
        End Try
    End Sub
    Sub Main()
        divisionFunction(4, 0)
        Console.ReadKey()
    End Sub

End Module

Schritt 3) Klicken Sie in der Symbolleiste auf die Schaltfläche „Start“, um den Code auszuführen. Sie sollten die folgende Ausgabe erhalten:

Ausnahmebehandlung

Hier ist ein Screenshot des Codes:

Ausnahmebehandlung

Erläuterung des Codes:

  1. Erstellen eines Moduls mit dem Namen Module1.
  2. Erstellen einer Unterprozedur namens „divisionFunction“ mit zwei ganzzahligen Argumenten n1 und n2. ByVal ist ein VB.Net-Schlüsselwort, das angibt, dass die Werte der Argumente als Wert übergeben werden.
  3. Erstellen einer Ganzzahlvariablen mit dem Namen „Antwort“.
  4. Beginn des Try/Catch-Blocks. Wir müssen den Code, von dem wir vermuten, dass er eine Ausnahme auslösen könnte, mit diesem Block umgeben.
  5. Durchführen einer Divisionsoperation zwischen den Werten der Variablen n1 und n2. Das Ergebnis der Divisionsoperation wird der Variablen Antwort zugewiesen. Dieser Code kann eine Ausnahme auslösen, beispielsweise wenn wir eine Zahl durch Null dividieren, daher haben wir ihn mit Try/Catch-Blöcken umgeben.
  6. Abfangen der Ausnahme namens DivideByZeroException und Zuweisen der generierten Ausnahmemeldung zum Ex.
  7. Drucken von Text auf der Konsole, um den Benutzer über den Typ/Namen der ausgelösten Ausnahme zu informieren.
  8. Der „Finally“-Block. Dies wird unabhängig davon ausgeführt, ob eine Ausnahme abgefangen wird oder nicht.
  9. Drucken eines Textes auf der Konsole, der das Ergebnis der Divisionsoperation anzeigt.
  10. Ende des Try-Blocks, d. h. Ende des Fehlerbehandlungscodes.
  11. Ende der DivisionFunction-Unterprozedur.
  12. Beginn des Hauptteilverfahrens.
  13. Aufrufen der Unterprozedur „divisionFunction“. Hier werden die Werte der beiden ganzzahligen Argumente übergeben. Der Wert von n1=4 und n2=0. Das bedeutet, dass die Divisionsoperation 4\0, also n1\n2, sein wird.
  14. Das Konsolenfenster wird angehalten und wartet darauf, dass der Benutzer Maßnahmen ergreift, um es zu schließen.
  15. Ende des Hauptteilverfahrens.
  16. Ende des Moduls.

Benutzerdefinierte Ausnahmen in VB.Net

Mit VB.Net können Sie Ihre eigenen Ausnahmen definieren. Sie können benutzerdefinierte Ausnahmeklassen aus der ApplicationException-Klasse abrufen. Lassen Sie uns dies anhand eines Beispiels demonstrieren:

Beispiel einer benutzerdefinierten Ausnahme in VB.Net

Hier ist ein Beispiel einer benutzerdefinierten Ausnahme in VB.Net:

Schritt 1) Erstellen Sie eine neue Konsolenanwendung.

Schritt 2) Verwenden Sie den folgenden Code:

Module Module1

    Public Class HeightIsZeroException : Inherits ApplicationException
        Public Sub New(ByVal text As String)
            MyBase.New(text)
        End Sub
    End Class
    Public Class Height
        Dim height As Integer = 0
        Sub showHeight()
            If (height = 0) Then
                Throw (New HeightIsZeroException("Zero Height found"))
            Else
                Console.WriteLine("Height is: {0}", height)
            End If
        End Sub
    End Class
    Sub Main()
        Dim hght As Height = New Height()
        Try
            hght.showHeight()
        Catch ex As HeightIsZeroException
            Console.WriteLine("HeightIsZeroException: {0}", ex.Message)
        End Try
        Console.ReadKey()
    End Sub

End Module

Schritt 3) Klicken Sie in der oberen Leiste auf die Schaltfläche „Start“, um den Code auszuführen. Sie sollten die folgende Ausgabe erhalten:

Benutzerdefinierte Ausnahme

Hier ist ein Screenshot des Codes:

Benutzerdefinierte Ausnahme

Erläuterung des Codes:

  1. Erstellen eines Moduls mit dem Namen Module1.
  2. Erstellen einer Ausnahmeklasse mit dem Namen HeightIsZeroException. Die Klasse erbt die gesamte ApplicationException-Klasse.
  3. Erstellen einer Unterprozedur mit dem Namen „Neu“. Es wird ein String-Argument mit dem Namen text benötigt.
  4. Aufrufen des Basisklassenkonstruktors und Übergeben des obigen Arguments an ihn.
  5. Ende des neuen Teilverfahrens.
  6. Ende der HeightIsZeroException-Klasse.
  7. Erstellen einer Klasse mit dem Namen Height. Sein öffentlicher Zugriffsmodifikator ist Public, was bedeutet, dass er öffentlich zugänglich ist.
  8. Erstellen einer ganzzahligen Variablen mit dem Namen „Height“ und Initialisieren ihres Werts auf 0.
  9. Erstellen einer Unterprozedur namens showHeight().
  10. Prüfen, wann der Wert der Variablen Höhe 0 ist. Wir haben die If…Then-Bedingung verwendet.
  11. Um die HeightIsZeroException auszulösen, wenn die obige Bedingung wahr ist. Die Meldung „Nullhöhe gefunden“ wird angezeigt, wenn diese Ausnahme ausgelöst wird.
  12. Der Else-Teil, der ausgeführt werden soll, wenn die If-Bedingung nicht wahr ist.
  13. Auf der Konsole auszudruckende Meldung, die die Höhe anzeigt, wenn sie nicht 0 ist.
  14. Ende der If-Bedingung.
  15. Ende der Unterprozedur showHeight().
  16. Ende der Klasse Höhe.
  17. Beginn des Hauptteilverfahrens.
  18. Erstellen eines Objekts mit dem Namen Height als Instanz der Height-Klasse.
  19. Beginn des Ausnahmebehandlungsblocks.
  20. Aufrufen der in der Height-Klasse definierten Unterprozedur showHeight(). Wir haben ein Objekt dieser Klasse verwendet, um auf diese Methode zuzugreifen. Diese Zeile kann zu einer Ausnahme führen. Deshalb haben wir es mit einem Ausnahmebehandlungscode umgeben.
  21. Abfangen der HeightIsZeroException-Ausnahme als Objekt ex, falls sie auftritt.
  22. Die Meldung, die auf der Konsole gedruckt werden soll, wenn die HeightIsZeroException abgefangen wird.
  23. Ende des Ausnahmebehandlungsblocks.
  24. Halten Sie das Konsolenfenster an und warten Sie darauf, dass ein Benutzer Maßnahmen ergreift, um es zu schließen.
  25. Ende des Hauptteilverfahrens.
  26. Ende des Moduls.

Ausnahme in VB.Net auslösen

Bei der Ausnahmebehandlung können Sie ein Objekt auslösen. Das Objekt muss jedoch vom System abgeleitet sein. Ausnahmeklasse, direkt oder indirekt. Zum Beispiel:

Beispiel einer Throw-Ausnahme in VB.Net

Unten finden Sie ein Beispiel für eine Throw-Ausnahme in VB.Net:

Schritt 1) Erstellen Sie eine neue Konsolenanwendung.

Schritt 2) Verwenden Sie den folgenden Code:

Module Module1

    Sub Main()
        Try
            Throw New ApplicationException("Throwing a custom exception")
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            Console.WriteLine("The Finally Block")
        End Try
        Console.ReadKey()
    End Sub


End Module

Schritt 3) Klicken Sie in der oberen Leiste auf die Schaltfläche „Start“, um den Code auszuführen. Sie sollten Folgendes erhalten:

Ausnahme auslösen

Hier ist ein Screenshot des Codes:

Ausnahme auslösen

Erläuterung des Codes:

  1. Erstellen eines Moduls mit dem Namen Module1.
  2. Beginn des Hauptteilverfahrens.
  3. Beginn des Fehlerbehandlungscodes.
  4. Auslösen eines Ausnahmeobjekts. Dieser Code kann eine Ausnahme erzeugen, daher haben wir ihn mit einem Try/Catch-Block umgeben.
  5. Eine Ausnahme als Objekt abfangen, z. B. wenn die Zeile eine Ausnahme auslöst.
  6. Drucken der Ausnahmemeldung auf der Konsole, falls sie auftritt.
  7. Der Final-Block wird ausgeführt, unabhängig davon, ob eine Ausnahme abgefangen wird oder nicht.
  8. Die Meldung, die auf der Konsole gedruckt werden soll, wenn der Final-Block ausgeführt wird.
  9. Ende des Ausnahmebehandlungscodes.
  10. Halten Sie die Konsole für eine Weile an und warten Sie darauf, dass ein Benutzer Maßnahmen ergreift, um sie zu schließen.
  11. Ende des Hauptteilverfahrens.
  12. Ende des Moduls.

Zusammenfassung

  • Eine Ausnahme bezieht sich auf ein Problem, das während der Programmausführung aufgrund eines unerwarteten Umstands auftritt.
  • Wenn Sie vermuten, dass ein Code eine Ausnahme generiert, umgeben Sie ihn mit einem Try/Catch-Block.
  • Der Final-Block kommt nach dem Try/Catch-Block und wird unabhängig davon ausgeführt, ob eine Ausnahme abgefangen wird oder nicht.
  • Mit VB.Net können wir benutzerdefinierte Ausnahmen erstellen.