Руковање изузецима у Ц # - Како се ради са изузећем у Ц # - Примери

Преглед садржаја:

Anonim

Увод о поступању са изузецима у Ц #

Не можемо очекивати да ће корисник стално унети тачне детаље. Међутим, ако се погрешним или неочекиваним улазом не поступа исправно, читав се код може срушити или проћи са бесконачном петљом. Ово је проблем који се покреће приликом извршавања програма због неочекиваних услова или уноса. На пример, резултат је бесконачан када је број подељен са нулом. Руковање изузецима је начин да се нареди програму да пређе на следећи блок кода или да обезбеди дефинисани резултат у одређеним ситуацијама. Руковање изузецима може се обавити са испод четири кључне речи.

  1. Покушајте: Пробни блок дефинише врсту изузетка који ће се третирати. Овде би се ухватио изузетак. Увек ће се упарити са једним блоком за хватање.
  2. Хватање: Након што је покушани блок дефинисао тип и добио једну изнимку током извођења, блок хватања ће потврдити тип обрађивача изузетка који ће се користити. Овај блок ће такође одредити где се треба поступати са изузетком. Као што кључна реч каже, то је попут хватања изузетака.
  3. Коначно: Овај блок има одређени скуп изјава. Без обзира на изузетак, изјаве дефинисане у завршном блоку увек ће се извршавати.
  4. Бацање: Када се ухвати изузетак, кључна реч бацање користи се за приказ ухваћеног изузетка.

Софтвер или код можете да сачувате од много проблема тако што ћете дефинисати програм за обраду изузетака. Добра пракса је дефинисати обрађивач изузетака где год је то могуће.

Синтакса
Кад год се изузетак постави, декларисана метода хвата изузетак уз помоћ кључне ријечи три анд цатцх. Морамо да ставимо ову комбинацију на део кода, очекује се изузетак. Ови се кодови називају заштићеним кодом. Такође можете дефинисати више кључних речи за једну кључну реч. На крају садржаја извршиће се завршни део кода који ће се извршити без обзира да ли је постављен изузетак или не.

Код

try
(
//Define the statement that could cause an exception.
)
Catch(ExceptionName secondException)
(
//error handling code
)
Finally
(
//define the statement that will be executed
)

Како функционира руковање изузетком у Ц #?

Постоји много унапред дефинисаних класа за руковање са изузетком. Пробни блок покрива дио кода који може бацити изузетак и цатцх потврђује шта треба учинити када се изузетак ухвати. Завршни део блока дефинише шта се мора учинити без обзира да ли је изузетак откривен или не, а део бацања приказује поруку ако је подешена.

Класе изузетака у Ц #

У Ц # постоји много класа кроз које се могу приказати изузеци. Све класе су изведене из главне класе која се зове Систем. Изузетак. Постоји неколико класа које су такође изведене из система Систем.АпплицатионЕкцептион и Систем.СистемЕкцептион.

Примери класа изузећа у Ц #

Изузеци се добијају из система. Класа изузетака. Ево листе уобичајених класа изузетака Ц #.

ИзузетакОпис
Систем.ДивидеБиЗероЕкцептионобрађује грешку када покушава да подели број на нулу.
Систем.НуллРеференцеЕкцептионобрађује грешку када упућује на објект који не постоји.
Систем.ИнвалидЦастЕкцептионобрађује грешку приликом покушаја неважећег кастинга.
Систем.ИО.ИОЕкцептионСве грешке улаз-излаз се обрађују.
Систем.ФиелдАццессЕкцептионКада покушавате да приступите неовлашћеном предавању

1. Ц # покушај / ухватити

Руковање изузецима врши се покушајем и хватањем блока у Ц #. Пробни блок у Ц # користи се за постављање кода који може бацити изузетак. Изузетак обрађује блок хватања.

Пример Ц # без покушаја / улова

Шифра:

using System;
public class exceptionhandling
(
public static void Main(string() args)
(
int a = 10;
int b = 0;
int x = a/b; //we are trying to divide the number with zero
Console.WriteLine("other part of the code");
)
)

Излаз:

Пример # покушај / ухватити

Код

using System;
public class ExExample
(
public static void Main(string() args)
(
try
(
int a = 10;
int b = 0;
int x = a / b;
)
catch (Exception e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)

Излаз:

Примена класа изузетка у Ц # коначно

Приказаће вам поруку без обзира на то што је изузет.

Код

using System;
public class Exceptionhandling
(
public static void Main(string() args)
(
try
(
int x = 5;
int y= 0;
int z = x / y;
)
catch (Exception obj) ( Console.WriteLine(obj); )
finally ( Console.WriteLine("Time to execute finally block"); )
Console.WriteLine("Other part of the code");
)
)

Излаз:

1. На крају, пример Ц #, ако се не поступа са изузетком

Код

using System;
public class ExceptionHandling
(
public static void Main(string() args)
(
try
(
int p = 6;
int q = 0;
int r= p/q;
)
catch (NullReferenceException nullObject) ( Console.WriteLine(nullObject); )
finally ( Console.WriteLine("Exception not handled. Now Finally section will be executed"); )
Console.WriteLine("Other part of the code");
)
)

Излаз:

2. Изузетак који је дефинисао Ц #

Не само да је систем дефинисан, већ можемо да поставимо и свој изузетак. Међутим, морамо да наследимо код да бисмо ово постигли.

Код

using System;
public class userdefinedInvalidAge : Exception
(
public userdefinedInvalidAge (String errorMessage)
: base(errorMessage)
(
)
)
public class TestUserDefinedException
(
static void validateAge(int age)
(
if (age < 18)
(
throw new userdefinedInvalidAge("Sorry, Age must be greater than 18");
)
)
public static void Main(string() args)
(
try
(
validateAge(12);
)
catch (userdefinedInvalidAge e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)

Излаз:

Закључак

На било ком месту за које мислите да би могло да створи грешку због било чега, требало би користити руковаоца изузетака. Важно је да користите изјаву о улову и кренете од генеричке до одређене изнимке. Цео ваш софтвер или код је у ризику без одговарајућег обрађивача изузетака.

Препоручени чланци

Ово је водич за руковање изузетцима у Ц #. Овде смо расправљали о начину на који руковање изузецима делује у Ц #, примерима и употреби ц #. Можете и да прођете кроз наше друге сродне чланке да бисте сазнали више -

  1. Преоптерећење у Ц #
  2. Ц # стринг функције
  3. Употребе Ц #
  4. Ц # иф Изјава
  5. Водич за руковање изузетцима у ВБ.НЕТ-у
  6. Преоптерећење и прегласавање у Ц #
  7. ВБ.Нет Евентс