Zpracování výjimek ve VB.NET - Naučte se příklady, jak zacházet s výjimkami

Obsah:

Anonim

Úvod do zpracování výjimek ve Vb.Net

Následující článek Zpracování výjimek ve VB.NET poskytuje podrobný přehled pro zpracování výjimek ve VB.Net. Vítejte v tématu zpracování výjimek ve VB.NET. Naučme se, jak se pracuje s výjimkami, jak se vyskytují různé výjimky a jak s těmito výjimkami zacházíme. Výjimky se vyskytují, když spustíme program a je zachycena chyba, která vede k výjimce, kterou může být Výjimka systému nebo Výjimka aplikace. Více se o tom dozvíme ve třídách výjimek dále. V tomto tématu se dozvíme o zpracování výjimek ve VB.NET.

Zpracování výjimek ve VB.NET je založeno na použití čtyř klíčových slov, jako je try, catch, nakonec a vyvolá.

  • Try: Try Block je blok kódu, který generuje různé výjimky v aplikaci. K vyřizování těchto výjimek vyvolaných v pokusném bloku používáme blok catch. Zkušební blok tedy vždy následuje jeden nebo více blokovacích bloků.
  • Catch: Catch Block je blok kódu, který obsahuje příkazy, které zpracovávají výjimky pomocí obsluhy výjimek v příkazu, kde se problém vyskytl. Blok catch je hlavně zpracování výjimky různými třídami výjimek definovanými v knihovně výjimek.
  • Konečně: Konečně blok je blok kódu, který obsahuje příkazy, které jsou povinnými příkazy, které mají být provedeny bez ohledu na to, zda je vyvolána výjimka, nebo není vyvolána. Předpokládejme, že musím otevřít soubor, přečíst soubor, napsat soubor a zavřít soubor. V bloku try jsou příkazy podobné otevření souboru, přečtení souboru a zápisu souboru, který může nebo nemusí vyvolávat výjimku, ale soubor musí být uzavřen před ukončením programu. Poslední blok má tedy vždy příkazy, jako je uzavření souborů, ukončení databázového připojení, ukončení programu atd.
  • Throw: Když nastane problém, toto prohlášení vyvolá výjimku. Tato výjimka může být zabudována nebo uživatelem definovaná výjimka.

Syntax

Kód bloku Try-Catch je následující

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

Zde je ve výše uvedené syntaxi zobrazen více než jeden blok zachycení, který zachycuje jiný typ výjimek vyvolaných blokem try. Může se stát, že více než jedna výjimka je vyvolána blokem try a je k dispozici pouze jeden blok catch, pak abychom zachytili všechny výjimky, budeme potřebovat jedno nebo více příkazů catch. A tak jsme do výše uvedené syntaxe napsali více než jedno prohlášení o úlovku.

Třídy výjimek ve VB.NET

Jak již bylo uvedeno ve výše uvedeném prohlášení. Výjimky jsou různých typů a nejedná se pouze o třídy. Nadřazená třída, ze které jsou tyto třídy zděděny, je System.Exception.

Existují hlavně dvě výjimky

  1. System.SystemException
  2. System.ApplicationException

System.SystemException je třída pro všechny vestavěné systémové výjimky, nebo můžeme říci, že když dojde k chybě běhu času, kdy došlo k systémové výjimce, jako je DivideByZeroException, IndexOutOfRangeException, StackOverflowException, je instance.

System.ApplicationException je třída, která provádí výjimky definované programátorem nebo vývojářem v aplikaci. Vyvolá uživatelem definovanou výjimku, která je odvozena od této třídy System.ApplicationException.

Pojďme se podívat na několik tříd výjimek VB.NET a jejich použití.

System.IndexOutOfRangeException: Tato výjimka se zabývá chybami způsobenými indexem matice, který je mimo rozsah.s Předpokládejme, že máme pole o délce 5 matic a opakujeme to šestkrát, šesté, co program provede prostřednictvím IndexOutOfRangeException.

System.DivideByZeroException: Tato výjimka zpracovává chyby způsobené, když je číslo vyděleno nulou, což je proti univerzálnímu pravidlu, že číslo vydělené nulou bude mít za následek neobvyklé ukončení programu.

System.FormatException: Tato výjimka se zabývá chybami způsobenými, když uživatel zadá znak nebo řetězec, když je požádán o číslo nebo celé číslo. řekněme, že uživatel musí zadat 5, ale vstupy říkají „y“, pak dojde k této výjimce.

Příklady zpracování výjimek ve VB.NET

Toto je několik vyjasněných výjimek. Nyní se naučíme zvládat tyto výjimky ve VB.Net s příkladem

Příklady # 1

Níže je uveden program pro 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

Příklad č. 2

Program pro přetečeníException

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

Dále umožňuje nyní vytvářet vlastní přizpůsobené výjimky

V tomto programu zkontrolujeme, zda je číslo sudé nebo liché,

Logika: Číslo je děleno 2, pokud je výsledek 0, pak je to sudé číslo, pokud výsledek není 0, je liché čí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

Podobně pokud zadáme číslo jako 100 (namísto 55) ve výše uvedeném programu a provedeme, zobrazí se následující chyba

Závěr

Doufejme, že jste porozuměli tématu Exception Handling ve VB.NET a budete schopni pochopit pomocí různých zde uvedených příkladů.

Doporučené články

Toto je průvodce zpracováním výjimek ve VB.NET. Zde diskutujeme Exception Classes ve VB.NET a ukázkový kód pro zpracování výjimek. Další informace naleznete také v následujících článcích -

  1. Ovládací prvky VB.NET
  2. Datové typy VB.Net
  3. Co je ADO.NET?
  4. Co je .NET Core
  5. Události VB.Net