Introduksjon om unntakshåndtering i Vb.Net
Følgende artikkel Unntakshåndtering i VB.NET gir en detaljert oversikt for håndtering av unntak i VB.Net. Velkommen til temaet unntakshåndtering i VB.NET. La oss lære hva som er unntakshåndtering, hvordan de forskjellige unntakene oppstår, og hvordan håndterer vi disse unntakene. Unntak oppstår når vi kjører et program, og det oppdages en feil som fører til et unntak som kan være enten et system unntak eller applikasjons unntak. Vi vil lære mer om dette i unntaksklassene videre. I dette emnet skal vi lære om unntakshåndtering i VB.NET.
Unntakshåndtering i VB.NET er basert på bruk av fire nøkkelord som prøve, fang, til slutt og kast.
- Try: En prøveblokk er en kodeblokk som genererer forskjellige unntak i applikasjonen. For å håndtere disse unntakene som blir kastet i prøveblokken bruker vi fangstblokk. Dermed følges prøveblokken alltid av en eller flere fangstblokker.
- Fangst: En fangstblokk er en blokkblokk som inneholder utsagnene som håndterer unntakene ved å bruke en unntaksbehandler på utsagnet der problemet oppsto. Fangstblokken er hovedsakelig håndtering av unntak av forskjellige unntaksklasser definert i biblioteket med unntak.
- Til slutt: En sluttblokk er en blokkblokk som inneholder utsagn som er obligatoriske utsagn som skal utføres uavhengig av om unntaket kastes eller ikke kastes. Anta at jeg må åpne en fil, lese filen, skrive filen og lukke filen. I prøveblokken er utsagn som å åpne en fil, lese en fil og skrive en fil som kanskje eller ikke kan kaste et unntak, men filen må lukkes før programmet avsluttes. Dermed har den endelige blokken alltid uttalelser som å lukke filene, lukke databaseforbindelsen, lukke programmet osv.
- Kast: Når et problem oppstår, kaster uttalelsen et unntak. Dette unntaket kan være innebygd eller brukerdefinert unntak.
syntax
Koden for Try-Catch Block er i henhold til følgende
Try
Catch As
(Catch1 Statements) Catch As
(Catch2 Statements) Catch As
(Catch3 Statements) Finally
(Finally Statements) End Try
Her er det mer enn en fangstblokk vist i syntaksen ovenfor for å fange en annen type unntak hevet av prøveblokken. Det kan hende at mer enn ett unntak blir kastet av prøveblokken og bare en fangstblokk er tilgjengelig, for å fange alle unntakene trenger vi ett eller flere fangstuttalelser. Og dermed har vi skrevet mer enn ett fangstuttalelse i syntaksen ovenfor.
Unntaksklasser i VB.NET
Som allerede nevnt i uttalelsen over. Unntak er av forskjellige typer, og dette er ikke annet enn klasser. Foreldreklassen der disse klassene er arvet er System.Exception.
Det er hovedsakelig to unntak
- System.SystemException
- System.ApplicationException
System.SystemException er en klasse for alle innebygde system unntak, eller vi kan si at når kjøretidsfeil når oppstod systemundtaksklasser som DivideByZeroException, IndexOutOfRangeException, StackOverflowException er instantivert.
System.ApplicationException er en klasse som utfører unntakene definert av programmereren eller utvikleren under applikasjonen. Det kaster et brukerdefinert unntak som er avledet fra denne System.ApplicationException-klassen.
La oss se på noen unntaksklasser fra VB.NET og bruken av dem.
System.IndexOutOfRangeException: Dette unntaket håndterer feilene forårsaket av en matriseindeks som er utenfor rekkevidde. Antar at vi har en matrise på 5 matrallengder og vi sløyfer dette 6 ganger for sjette gang programmet vil gjennom IndexOutOfRangeException.
System.DivideByZeroException: Dette unntaket håndterer feilene forårsaket når et tall er delt med null, noe som er mot den universelle regelen at et tall som deles med null vil resultere i en unormal avslutning av programmet.
System.FormatException: Dette unntaket håndterer feilene forårsaket når brukeren skriver inn et tegn eller en streng når han blir spurt om et tall eller et heltall. si at brukeren trenger å oppgi 5, men inngangene sier 'y', så vil dette unntaket skje.
Eksempler på unntakshåndtering i VB.NET
Dette er noen få unntak forklart. La oss nå lære å håndtere disse unntakene i VB.Net med eksempel
Eksempler nr. 1
Nedenfor er programmet for DivideByZeroException og dets output
Koden for 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
Utgangen til koden
Eksempel 2
Program for 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
Kodeproduksjonen
La oss videre lage våre egne tilpassede unntak
I dette programmet vil vi sjekke om tallet er jevnt eller rart,
Logikk: Antallet er delt på 2 hvis resultatet er 0, så er det et jevnt tall ellers hvis resultatet ikke er 0 er det et oddetall.
Kode for programmet er
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
Utgangen til programmet
På samme måte, hvis vi oppgir tallet som 100 (i stedet for 55) i programmet ovenfor og utfører, vil det vise følgende feil
Konklusjon
Forhåpentligvis forsto du temaet, Exception Handling i VB.NET og vil kunne forstå med hjelp av forskjellige eksempler nevnt her
Anbefalte artikler
Dette er en guide til unntakshåndtering i VB.NET. Her diskuterer vi unntaksklasser i VB.NET og prøvekode for å håndtere unntakene. Du kan også se på følgende artikler for å lære mer -
- VB.NET-kontroller
- VB.Net Datatyper
- Hva er ADO.NET?
- Hva er. NET Core
- VB.Net Events