Ravnanje izjem v VB.NET - Naučite se primerov za obravnavanje izjem

Kazalo:

Anonim

Uvod o ravnanju z izjemami v Vb.Net

Naslednji članek Ravnanje izjem v VB.NET ponuja podroben oris za obravnavanje izjem v VB.Net. Dobrodošli v temi o ravnanju z izjemami v VB.NET. Naučimo se, kaj je ravnanje z izjemami, kako se zgodijo različne izjeme in kako ravnamo s temi izjemami. Izjeme se pojavijo, ko izvajamo program, in pride do napake, kar vodi do izjeme, ki je lahko bodisi sistemska ali izjemna aplikacija. Več o tem bomo izvedeli v razredih izjem. V tej temi bomo v VB.NET spoznali ravnanje z izjemami.

Ravnanje izjem v VB.NET temelji na uporabi štirih ključnih besed, kot so poskus, lov, končno in metanje.

  • Poskusite: Poskusni blok je blok kode, ki v aplikaciji ustvari različne izjeme. Za obravnavanje teh izjem, ki jih vržemo v poskusni blok, uporabimo catch block. Tako poskusnemu bloku vedno sledi eden ali več blokov ulova.
  • Catch: Blok ulova je blok kode, ki vsebuje izjave, ki obravnavajo izjeme z uporabo orodja za obdelavo izjem v stavku, kjer je prišlo do težave. Blok ulova je predvsem obravnava izjeme v različnih razredih izjem, definiranih v knjižnici izjem.
  • Končno: Končni blok je blok kode, ki vsebuje izjave, ki so obvezne izjave, ki jih je treba izvesti ne glede na to, ali je izjema vržena ali ne. Recimo, da moram odpreti datoteko, jo prebrati, napisati in zapreti datoteko. V poskusnem bloku so stavki podobni odpiranju datoteke, preberite datoteko in napišite datoteko, ki morda ne bo vrgla izjeme, vendar jo je treba zapreti, preden se program konča. Tako ima končni blok vedno izjave, kot so zapiranje datotek, zapiranje povezave z bazo podatkov, zapiranje programa itd.
  • Vrzi: Ko pride do težave, ta izjava vrže izjemo. Ta izjema je lahko vgrajena ali uporabniško določena izjema.

Sintaksa

Koda za blok Try-Catch je naslednja

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

Tu je v zgornji sintaksi prikazano več blokov ulova, s katerimi lahko ujamete različne vrste izjem, ki jih je sprožil poskusni blok. Lahko se zgodi, da poskusni blok vrže več kot eno izjemo in je na voljo samo en blok ulova, za ulov vseh izjem pa bomo potrebovali eno ali več izjav o ulovu. Tako smo v zgornji skladnji zapisali več kot eno izjavo o ulovu.

Razredi izjem v VB.NET

Kot je že omenjeno v zgornji izjavi. Izjeme so različnih vrst in to niso nič drugega kot razredi. Nadrejeni razred, od koder so ti razredi podedovani, je System.Exception.

V glavnem sta dve izjemi

  1. System.SystemException
  2. System.ApplicationException

System.SystemException je razred za vse vgrajene sistemske izjeme ali pa lahko rečemo, da so pri napaki med izvajanjem časa, ko so se pojavili razredi sistemskih izjem, kot so DivideByZeroException, IndexOutOfRangeException, StackOverflowException, nameščeni.

System.ApplicationException je razred, ki izvaja izjeme, ki jih je programer ali razvijalec določil v aplikaciji. To vrže uporabniško določeno izjemo, ki izhaja iz tega razreda System.ApplicationException.

Oglejmo si nekaj izjemnih razredov VB.NET in njegovo uporabo.

System.IndexOutOfRangeException: Ta izjema obravnava napake, ki jih povzroči matrični indeks, ki je zunaj dosega. S predpostavimo, da imamo matriko 5 dolžin matrike in to zanko povečamo 6-krat šestkrat, ko bo program opravil IndexOutOfRangeException.

System.DivideByZeroException: Ta izjema obravnava napake, ki nastanejo, kadar je število razdeljeno na nič, kar je v nasprotju z univerzalnim pravilom, da bo število, deljeno z ničlo, povzročilo nenormalen zaključek programa.

System.FormatException: Ta izjema obravnava napake, ki nastanejo, ko uporabnik vnese znak ali niz, ko ga zahteva število ali celo število. recimo, da mora uporabnik vnesti 5, vendar vnosi rečejo "y", potem bo prišlo do te izjeme.

Primeri ravnanja z izjemami v VB.NET

Razloženo je le nekaj izjem. Zdaj se naučimo, da s temi izjemami ravnamo na primer v VB.Net

Primeri # 1

Spodaj je program za DivideByZeroException in njegov izid

Koda programa

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

Izhod kode

Primer # 2

Program za 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

Izhod kodeksa

Poleg tega zdaj lahko ustvarjamo lastne izjeme po meri

V tem programu bomo preverili, ali je število sodo ali liho,

Logika: Število je deljeno z 2, če je rezultat 0, potem je sodo število, če rezultat ni 0, je liho število.

Koda programa je

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

Izhod programa

Podobno, če v zgornji program vpišemo številko kot 100 (namesto 55), se prikaže naslednja napaka

Zaključek

Upajmo, da ste v VB.NET razumeli temo, Ravnanje izjem in jo boste lahko razumeli s pomočjo tu navedenih primerov.

Priporočeni članki

To je vodnik za ravnanje z izjemami v VB.NET. Tukaj razpravljamo o razredih izjem v VB.NET in vzorčni kodi za obravnavo izjem. Za več informacij si lahko ogledate tudi naslednje članke -

  1. VB.NET kontrole
  2. VB.Net podatkovni tipi
  3. Kaj je ADO.NET?
  4. Kaj je .NET Core
  5. VB.Net Dogodki