Увод о изузећу у Вб.Нет-у
Следећи чланак Руковање изузецима у ВБ.НЕТ-у пружа детаљан преглед руковања изузетцима у ВБ.Нет. Добродошли на тему поступања са изузетцима у ВБ.НЕТ-у. Научимо што је управљање изузецима је како се догађају различити изузеци и како се носимо са овим изузецима. Изузеци се дешавају када покрећемо програм и прими се грешка која доводи до изузећа који може бити или Изузетак система или Изузетак од апликације. О томе ћемо више сазнати у разредима изузетка. У овој теми ћемо сазнати више о руковању изузетцима у ВБ.НЕТ-у.
Руковање изузецима у ВБ.НЕТ-у заснива се на употреби четири кључне речи као што су покушај, улов, на крају и бацање.
- Покушајте: Покушај блок је блок кода који ствара различите изузетке унутар апликације. За обраду ових изузетака бачених у покушани блок користимо блок за хватање. На тај начин пробани блок увек прати један или више блокова за хватање.
- Цатцх: Блок за улов је блок кода који садржи изјаве које обрађују изузетке помоћу алата за обраду изузетака у изјави где се проблем догодио. Блок хватања је углавном руковање изузетком из различитих класа изузетака дефинисаних у библиотеци изузетака.
- Коначно: Коначно блок је блок кода који садржи изјаве које су обавезне изјаве које се извршавају без обзира на то да ли је изузетак бачен или не. Претпоставимо да морам да отворим датотеку, прочитам датотеку, напишем је и затворим. У блоку покушаја изјаве су попут отварања датотеке, читања датотеке и писања датотеке која може или не мора изузети изузетак, али датотеку је потребно затворити пре него што се програм заврши. Стога крајњи блок увек има изјаве попут затварања датотека, затварања везе са базом података, затварања програма итд.
- Баците: Када се појави проблем, ова изјава баца изузетак. Овај изузетак може бити уграђен или изузетак који је дефинисан од стране корисника.
Синтакса
Код за блок Три-Цатцх је следећи
Try
Catch As
(Catch1 Statements) Catch As
(Catch2 Statements) Catch As
(Catch3 Statements) Finally
(Finally Statements) End Try
Овде је приказано више блокова хватања у горњој синтакси за хватање другачије врсте изузетака које је покренуо проба блок. Може се догодити да покушани блок баци више од једног изузетка и да је доступан само један блок хватања, тада ће нам требати једна или више изјава о улову. И стога смо у горњој синтакси написали више изјава.
Класе изузетака у ВБ.НЕТ-у
Као што је већ поменуто у горњој изјави. Изузеци су различитих врста и то су само часови. Родитељска класа из које се ове класе наслеђују је Систем.Екцептион.
Постоје углавном две изузеци
- Систем.СистемЕкцептион
- Систем.АпплицатионЕкцептион
Систем.СистемЕкцептион је класа за све уграђене системске изузетке или можемо рећи да су при покретању грешке у времену покретања када су се догодиле класе изузетака система попут ДивидеБиЗероЕкцептион, ИндекОутОфРангеЕкцептион, СтацкОверфловЕкцептион.
Систем.АпплицатионЕкцептион је класа која извршава изузетке које је дефинисао програмер или програмер помоћу апликације. Баца изузетак који је дефинисан од стране корисника, а који је изведен из ове класе Систем.АпплицатионЕкцептион.
Погледајмо неколико ВБ.НЕТ класа изузећа и његову употребу.
Систем.ИндекОутОфРангеЕкцептион: Ово изузеће обрађује грешке узроковане индексом поља који је изван домета. Претпоставимо да имамо низ од 5 низова и петљамо 6 пута шести пут када ће програм проћи кроз ИндекОутОфРангеЕкцептион.
Систем.ДивидеБиЗероЕкцептион: Ова изнимка обрађује грешке настале када је број подијељен са нулом, што је против универзалног правила да ће број који је подијељен са нулом резултирати ненормалним прекидом програма.
Систем.ФорматЕкцептион: Ова изнимка обрађује грешке настале када корисник унесе знак или низ када га затражи број или цијели број. рецимо да корисник треба уписати 5, али улази кажу „и“, онда ће се догодити овај изузетак.
Примери руковања изузетцима у ВБ.НЕТ-у
Ово је неколико објашњених изузетака. Сада научимо да управљамо овим изузецима у ВБ.Нет-у са примером
Примери бр. 1
Испод је програм за ДивидеБиЗероЕкцептион и његов излаз
Код за програм
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
Излаз кода
Пример бр. 2
Програм за ОверфловЕкцептион
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
Излазни код
Надаље, сада креирајмо своје прилагођене изузетке
У овом програму ћемо проверити да ли је број паран или непаран,
Логика: Број је подељен са 2 ако је резултат 0, онда је парни број, ако резултат није 0, то је непаран број.
Код за програм је
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
Излаз програма
Слично томе, ако у горњи програм унесемо број 100 (уместо 55), извршиће се следећа грешка
Закључак
Надамо се да сте разумели тему, Руковање изузецима у ВБ.НЕТ-у и да ћете моћи да схватите уз помоћ различитих примера поменутих овде
Препоручени чланци
Ово је водич за руковање изузетцима у ВБ.НЕТ-у. Овде смо расправљали о класама изузетака у ВБ.НЕТ-у и узорку кода за обраду изузетака. Можда ћете такође погледати следеће чланке да бисте сазнали више -
- ВБ.НЕТ контроле
- ВБ.Нет Типови података
- Шта је АДО.НЕТ?
- Шта је .НЕТ Цоре
- ВБ.Нет Евентс