Introduktion om undantagshantering i Vb.Net

Följande artikel Undantagshantering i VB.NET ger en detaljerad beskrivning för hantering av undantag i VB.Net. Välkommen till ämnet undantagshantering i VB.NET. Låt oss lära oss vad som är undantagshantering är hur de olika undantagen uppstår och hur hanterar vi dessa undantag. Undantag uppstår när vi kör ett program och ett fel upptäcks vilket leder till ett undantag som kan vara antingen ett systemundantag eller applikationsundantag. Vi kommer att lära dig mer om detta i undantagsklasserna. I det här ämnet kommer vi att lära oss om undantagshantering i VB.NET.

Undantagshantering i VB.NET bygger på användning av fyra nyckelord som try, catch, slutligen och kast.

  • Try: A Try Block är ett kodblock som genererar olika undantag i applikationen. För att hantera dessa undantag som kastas i försöksblocket använder vi fångstblock. Således följs försöksblocket alltid av ett eller flera fångstblock.
  • Fångst: Ett fångstblock är ett kodblock som innehåller uttalanden som hanterar undantagen genom att använda en undantagshanterare i uttalet där problemet inträffade. Fångstblocket är främst hantering av undantag från olika undantagsklasser definierade i biblioteket med undantag.
  • Slutligen: Ett slutligt block är ett kodblock som innehåller uttalanden som är obligatoriska uttalanden som ska utföras oavsett om undantaget kastas eller inte kastas. Anta att jag måste öppna en fil, läsa filen, skriva filen och stänga filen. I försöksblocket är uttalanden som att öppna en fil, läsa en fil och skriva en fil som kanske kan kasta ett undantag men filen måste stängas innan programmet avslutas. Således har det sista blocket alltid uttalanden som att stänga filerna, stänga databasanslutningen, stänga program etc.
  • Kast: När ett problem inträffar kastar detta uttalande ett undantag. Detta undantag kan vara inbyggt eller användardefinierat undantag.

Syntax

Koden för Try-Catch Block är enligt följande

Try
Catch As
(Catch1 Statements) Catch As
(Catch2 Statements) Catch As
(Catch3 Statements) Finally
(Finally Statements) End Try

Här finns det mer än ett fångstblock som visas i syntaxen ovan för att fånga en annan typ av undantag som tas upp av försöksblocket. Det kan hända att mer än ett undantag kastas av försöksblocket och endast ett fångstblock är tillgängligt, för att fånga alla undantag behöver vi ett eller flera fångstuttalanden. Och därmed har vi skrivit mer än ett fångstmeddelande i syntaxen ovan.

Undantagskurser i VB.NET

Som redan nämnts i ovanstående uttalande. Undantag är av olika slag och dessa är inget annat än klasser. Den överordnade klassen där dessa klasser ärvs är System.Exception.

Det finns huvudsakligen två undantag

  1. System.SystemException
  2. System.ApplicationException

System.SystemException är en klass för alla inbyggda systemundantag eller vi kan säga att vid körning av tidsfel när inträffade systemundantagsklasser som DivideByZeroException, IndexOutOfRangeException, StackOverflowException är instanserade.

System.ApplicationException är en klass som kör de undantag som definieras av programmeraren eller utvecklaren i applikationen. Det kastar ett användardefinierat undantag som härrör från denna System.ApplicationException-klass.

Låt oss titta på några undantagsklasser från VB.NET och dess användning.

System.IndexOutOfRangeException: Detta undantag hanterar fel orsakade av ett arrayindex som är utanför räckvidden. Antar att vi har en matris med 5 array-längder och vi släpper detta 6 gånger för sjätte gången programmet kommer genom IndexOutOfRangeException.

System.DivideByZeroException: Detta undantag hanterar de fel som orsakas när ett tal delas med noll vilket är mot den universella regeln att ett nummer som delas med noll kommer att resultera i en onormal avslutning av programmet.

System.FormatException: Detta undantag hanterar de fel som orsakas när användaren matar in ett tecken eller en sträng när han frågas om ett nummer eller ett heltal. säger att användaren måste ange 5 men ingångar säger 'y' då kommer detta undantag att inträffa.

Exempel på undantagshantering i VB.NET

Det här är några undantag som förklaras. Kan nu lära oss att hantera dessa undantag i VB.Net med exempel

Exempel 1

Nedan är programmet för DivideByZeroException och dess output

Koden för programmet

Module exceptionProg
Sub division(ByVal n1 As Integer, ByVal n2 As Integer)
Dim res As Integer
Try
res = n1 \ n2
Catch ex As DivideByZeroException
Console.WriteLine("Exception caught: (0)", ex)
Finally
Console.WriteLine("Result: (0)", res)
End Try
End Sub
Sub Main()
division(100, 0)
Console.ReadKey()
End Sub
End Module

Kodens utgång

Exempel 2

Program för OverflowException

Module OverFlowProg
Sub division(ByVal n1 As Integer, ByVal n2 As Integer)
Dim res As Integer
Try
res = n1 \ n2
Catch ex As DivideByZeroException
Console.WriteLine("Exception caught: (0)", ex)
Finally
Console.WriteLine("Result: (0)", res)
End Try
End Sub
Sub Main()
division(25, 777777777777)
Console.ReadKey()
End Sub
End Module

Kodens utgång

Låt oss dessutom nu skapa våra egna anpassade undantag

I detta program kommer vi att kontrollera om antalet är jämnt eller udda,

Logik: Siffran är dividerad med 2 om resultatet är 0 så är det ett jämnt tal annars om resultatet inte är 0 det är ett udda tal.

Koden för programmet är

Module EvenorOddNo
Public Class EvenorOddNo : Inherits ApplicationException
Public Sub New(ByVal message As String)
MyBase.New(message)
End Sub
End Class
Public Class Divide
Dim AnyNo As Integer = 55
Dim No As Integer = 2
Sub showNumber()
If (AnyNo Mod No > 0) Then
Throw (New EvenorOddNo("The number is an odd number"))
Else
Console.WriteLine("The number is an even number : (0)", AnyNo)
End If
End Sub
End Class
Sub Main()
Dim obj As Divide = New Divide()
Try
obj.showNumber()
Catch ex As EvenorOddNo
Console.WriteLine("EvenorOddNo: (0)", ex.Message)
End Try
Console.ReadKey()
End Sub
End Module

Programmets utgång

På samma sätt, om vi anger numret som 100 (istället för 55) i ovanstående program och kör, kommer det att visa följande fel

Slutsats

Förhoppningsvis har du förstått ämnet, Exception Handling i VB.NET och kommer att kunna förstå med hjälp av olika exempel som nämns här

Rekommenderade artiklar

Detta är en guide till undantagshantering i VB.NET. Här diskuterar vi undantagsklasser i VB.NET och provkod för att hantera undantagen. Du kan också titta på följande artiklar för att lära dig mer -

  1. VB.NET-kontroller
  2. VB.Net-datatyper
  3. Vad är ADO.NET?
  4. Vad är .NET Core
  5. VB.Net-evenemang

Kategori: