Úvod k spracovaniu výnimiek vo Vb.Net

Nasledujúci článok Manipulácia výnimiek vo VB.NET poskytuje podrobný prehľad riešenia výnimiek vo VB.Net. Vitajte na tému spracovania výnimiek vo VB.NET. Dozvieme sa, ako sa riešia výnimky, ako vznikajú rôzne výnimky a ako sa s nimi vyrovnávame. Výnimky sa vyskytujú, keď spustíme program a vyskytne sa chyba, ktorá vedie k výnimke, ktorou môže byť výnimka systému alebo výnimka aplikácie. Viac sa o tom dozvieme v triedach výnimiek ďalej. V tejto téme sa dozvieme o manipulácii s výnimkami vo VB.NET.

Zaobchádzanie s výnimkami vo VB.NET je založené na použití štyroch kľúčových slov, ako sú vyskúšanie, chytenie, nakoniec a hodenie.

  • Try: Try Try je blok kódu, ktorý generuje rôzne výnimky v aplikácii. Na zvládnutie týchto výnimiek vyvolaných v skúšobnom bloku používame blok chytenia. Preto za skúšobným blokom vždy nasleduje jeden alebo viac záchytných blokov.
  • Catch: Catch Block je blok kódu, ktorý obsahuje príkazy, ktoré spracovávajú výnimky pomocou obsluhy výnimiek vo vyhlásení, v ktorom sa vyskytol problém. Blok úlovku je hlavne spracovanie výnimky rôznymi triedami výnimiek definovanými v knižnici výnimiek.
  • Nakoniec: A Nakoniec blok je blok kódu, ktorý obsahuje príkazy, ktoré sú povinnými príkazmi, ktoré sa majú vykonať bez ohľadu na to, či je výnimka vyvolaná alebo nie. Predpokladajme, že musím otvoriť súbor, prečítať ho, zapísať súbor a zatvoriť ho. V bloku try sú príkazy podobné otvoreniu súboru, prečítaniu súboru a napísaniu súboru, ktorý môže alebo nemusí vyvolávať výnimku, ale pred ukončením programu musí byť súbor zatvorený. Záverečný blok má teda vždy príkazy ako zatvorenie súborov, ukončenie pripojenia k databáze, ukončenie programu atď.
  • Hádzať: Keď nastane problém, toto vyhlásenie vyvolá výnimku. Táto výnimka môže byť zabudovaná alebo používateľom definovaná výnimka.

syntax

Kód pre blok Try-Catch je nasledujúci

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

Tu je vo vyššie uvedenej syntaxi zobrazený viac ako jeden blok úlovku na zachytenie odlišného typu výnimiek vyvolaných blokom try. Môže sa stať, že skúšobný blok vyvolá viac ako jednu výnimku a je k dispozícii iba jeden blok úlovku, aby sme zachytili všetky výnimky, budeme potrebovať jedno alebo viac príkazov na úlovok. A tak sme v syntaxi vyššie napísali viac ako jedno vyhlásenie o úlovku.

Triedy výnimiek vo VB.NET

Ako už bolo uvedené vo vyššie uvedenom vyhlásení. Výnimky sú rôzneho typu a nejde iba o triedy. Rodičovská trieda, z ktorej sa tieto triedy zdedia, je System.Exception.

Existujú hlavne dve výnimky

  1. System.SystemException
  2. System.ApplicationException

System.SystemException je trieda pre všetky vstavané systémové výnimky alebo môžeme povedať, že keď dôjde k chybe času spustenia, keď sa vyskytla chyba systémových výnimiek ako DivideByZeroException, IndexOutOfRangeException, StackOverflowException, je vytvorená inštancia.

System.ApplicationException je trieda, ktorá vykonáva výnimky definované programátorom alebo vývojárom v aplikácii. Vyvolá užívateľom definovanú výnimku, ktorá je odvodená z tejto triedy System.ApplicationException.

Pozrime sa na niekoľko tried VB.NET Výnimky a ich použitie.

System.IndexOutOfRangeException: Táto výnimka sa zaoberá chybami spôsobenými indexom polí, ktorý je mimo rozsahu. Predpokladajme, že máme pole s dĺžkou 5 polí a opakujeme to šesťkrát, šiestykrát, čo program vykoná prostredníctvom indexOutOfRangeException.

System.DivideByZeroException: Táto výnimka sa zaoberá chybami spôsobenými, keď je číslo delené nulou, čo je proti univerzálnemu pravidlu, že číslo delené nulou bude mať za následok abnormálne ukončenie programu.

System.FormatException: Táto výnimka sa zaoberá chybami spôsobenými, keď používateľ zadá znak alebo reťazec, keď bude požiadaný o zadanie čísla alebo celého čísla. povedzme, že užívateľ musí zadať 5, ale vstupy hovoria „y“, potom nastane táto výnimka.

Príklady spracovania výnimiek vo VB.NET

Toto je niekoľko vysvetlených výnimiek. Teraz sa naučíme zvládnuť tieto výnimky vo VB.Net s príkladom

Príklady # 1

Nižšie je uvedený program pre DivideByZeroException a jeho výstup

Kód programu

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

Výstup kódu

Príklad č. 2

Program pre výnimku pretečenia

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

Výstup kódu

Ďalej nám umožňuje vytvárať naše vlastné prispôsobené výnimky

V tomto programe skontrolujeme, či je číslo párne alebo nepárne,

Logika: Číslo je vydelené 2, ak je výsledok 0, potom je to párne číslo, ak výsledok nie je 0, je to nepárne číslo.

Kód programu 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

Výstup programu

Podobne, ak do vyššie uvedeného programu zadáme číslo 100 (namiesto 55) a vykonáme, zobrazí sa nasledujúca chyba

záver

Dúfajme, že ste porozumeli téme Exception Handling vo VB.NET a budete ju schopní pochopiť pomocou rôznych tu uvedených príkladov.

Odporúčané články

Toto je sprievodca spracovaním výnimiek vo VB.NET. Tu diskutujeme o triedach výnimiek vo VB.NET a ukážkový kód na spracovanie výnimiek. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Ovládacie prvky VB.NET
  2. Dátové typy VB.Net
  3. Čo je ADO.NET?
  4. Čo je to .NET Core
  5. Udalosti VB.Net

Kategórie: