Ausnahmebehandlung in VB.NET (Try Catch)
โก Intelligente Zusammenfassung
Die Ausnahmebehandlung in VB.Net kรผmmert sich um Laufzeitfehler wie Division durch Null mithilfe der Schlรผsselwรถrter Try, Catch, Finally und Throw, sodass ein Programm auf Probleme angemessen reagieren kann, anstatt wรคhrend der Ausfรผhrung abzustรผrzen.
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. |
Nachdem die Funktionen dieser vier Schlรผsselwรถrter geklรคrt sind, รผberlegen Sie nun, wie sie sich in einem einzigen Satz kombinieren lassen.
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
Mithilfe von Try/Catch-Anweisungen kรถnnen Sie Ihren normalen Programmcode vom Fehlerbehandlungssystem trennen. Wir zeigen Ihnen, wie Sie eine Ausnahme mithilfe der Schlรผsselwรถrter Try, Catch und Finally behandeln.
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:
Hier ist ein Screenshot des Codes:
Erklรคrung von Code:
- Erstellen eines Moduls mit dem Namen Module1.
- 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.
- Erstellen einer Ganzzahlvariablen mit dem Namen โAntwortโ.
- 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.
- 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.
- Abfangen der Ausnahme namens DivideByZeroException und Zuweisen der generierten Ausnahmemeldung zum Ex.
- Drucken von Text auf der Konsole, um den Benutzer รผber den Typ/Namen der ausgelรถsten Ausnahme zu informieren.
- Der โFinallyโ-Block. Dies wird unabhรคngig davon ausgefรผhrt, ob eine Ausnahme abgefangen wird oder nicht.
- Drucken eines Textes auf der Konsole, der das Ergebnis der Divisionsoperation anzeigt.
- Ende des Try-Blocks, d. h. Ende des Fehlerbehandlungscodes.
- Ende der DivisionFunction-Unterprozedur.
- Beginn des Hauptteilverfahrens.
- 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.
- Das Konsolenfenster wird angehalten und wartet darauf, dass der Benutzer Maรnahmen ergreift, um es zu schlieรen.
- Ende des Hauptteilverfahrens.
- Ende des Moduls.
Benutzerdefinierte Ausnahmen in VB.Net
VB.NET ermรถglicht es Ihnen, eigene Ausnahmen zu definieren. Sie kรถnnen benutzerdefinierte Ausnahmeklassen von der Klasse ApplicationException abrufen. Lassen Sie uns dies anhand eines Beispiels veranschaulichen:
Beispiel einer benutzerdefinierten Ausnahme in VB.Net
Hier ist ein Beispiel fรผr eine benutzerdefinierte 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:
Hier ist ein Screenshot des Codes:
Erklรคrung von Code:
- Erstellen eines Moduls mit dem Namen Module1.
- Erstellen einer Ausnahmeklasse mit dem Namen HeightIsZeroException. Die Klasse erbt die gesamte ApplicationException-Klasse.
- Erstellen einer Unterprozedur mit dem Namen โNeuโ. Es wird ein String-Argument mit dem Namen text benรถtigt.
- Aufrufen des Basisklassenkonstruktors und รbergeben des obigen Arguments an ihn.
- Ende des neuen Teilverfahrens.
- Ende der HeightIsZeroException-Klasse.
- Erstellen einer Klasse mit dem Namen Height. Sein รถffentlicher Zugriffsmodifikator ist Public, was bedeutet, dass er รถffentlich zugรคnglich ist.
- Erstellen einer ganzzahligen Variablen mit dem Namen โHeightโ und Initialisieren ihres Werts auf 0.
- Erstellen einer Unterprozedur namens showHeight().
- Prรผfen, wann der Wert der Variablen Hรถhe 0 ist. Wir haben die IfโฆThen-Bedingung verwendet.
- Um die HeightIsZeroException auszulรถsen, wenn die obige Bedingung wahr ist. Die Meldung โNullhรถhe gefundenโ wird angezeigt, wenn diese Ausnahme ausgelรถst wird.
- Der Else-Teil, der ausgefรผhrt werden soll, wenn die If-Bedingung nicht wahr ist.
- Auf der Konsole auszudruckende Meldung, die die Hรถhe anzeigt, wenn sie nicht 0 ist.
- Ende der If-Bedingung.
- Ende der Unterprozedur showHeight().
- Ende der Klasse Hรถhe.
- Beginn des Hauptteilverfahrens.
- Erstellen eines Objekts mit dem Namen Height als Instanz der Height-Klasse.
- Beginn des Ausnahmebehandlungsblocks.
- Die in der Klasse `Height` definierte Unterprozedur `showHeight()` wird aufgerufen. Wir haben ein Objekt dieser Klasse verwendet, um auf diese Methode zuzugreifen. Diese Zeile kann eine Ausnahme auslรถsen. Daher haben wir sie mit einer Ausnahmebehandlungsroutine umschlossen.
- Abfangen der HeightIsZeroException-Ausnahme als Objekt ex, falls sie auftritt.
- Die Meldung, die auf der Konsole gedruckt werden soll, wenn die HeightIsZeroException abgefangen wird.
- Ende des Ausnahmebehandlungsblocks.
- Halten Sie das Konsolenfenster an und warten Sie darauf, dass ein Benutzer Maรnahmen ergreift, um es zu schlieรen.
- Ende des Hauptteilverfahrens.
- Ende des Moduls.
Ausnahme in VB.Net auslรถsen
Bei der Ausnahmebehandlung kรถnnen Sie ein Objekt auslรถsen. Dieses Objekt muss jedoch direkt oder indirekt von der Klasse System.Exception abgeleitet sein. Zum Beispiel:
Beispiel einer Throw-Ausnahme in VB.Net
Nachfolgend ein Beispiel fรผr eine throw-Exception 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:
Hier ist ein Screenshot des Codes:
Erklรคrung von Code:
- Erstellen eines Moduls mit dem Namen Module1.
- Beginn des Hauptteilverfahrens.
- Beginn des Fehlerbehandlungscodes.
- Auslรถsen eines Ausnahmeobjekts. Dieser Code kann eine Ausnahme erzeugen, daher haben wir ihn mit einem Try/Catch-Block umgeben.
- Eine Ausnahme als Objekt abfangen, z. B. wenn die Zeile eine Ausnahme auslรถst.
- Drucken der Ausnahmemeldung auf der Konsole, falls sie auftritt.
- Der Final-Block wird ausgefรผhrt, unabhรคngig davon, ob eine Ausnahme abgefangen wird oder nicht.
- Die Meldung, die auf der Konsole gedruckt werden soll, wenn der Final-Block ausgefรผhrt wird.
- Ende des Ausnahmebehandlungscodes.
- Halten Sie die Konsole fรผr eine Weile an und warten Sie darauf, dass ein Benutzer Maรnahmen ergreift, um sie zu schlieรen.
- Ende des Hauptteilverfahrens.
- Ende des Moduls.






